<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aerc/worker, branch shivesh</title>
<subtitle>A pretty good email client (shivesh branch)</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/'/>
<entry>
<title>Implement interface for my custom IMAP flags</title>
<updated>2021-10-23T17:37:06+00:00</updated>
<author>
<name>Shivesh Mandalia</name>
<email>mail@shivesh.org</email>
</author>
<published>2021-10-23T17:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=5c7d4873908f28dde33013d10543e4cf1417525b'/>
<id>5c7d4873908f28dde33013d10543e4cf1417525b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch/maildir: remove double emit of the dirinfo</title>
<updated>2021-04-28T05:54:16+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-04-26T19:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=1687e558d3fae4d5622677c031bb9365a8c3e261'/>
<id>1687e558d3fae4d5622677c031bb9365a8c3e261</id>
<content type='text'>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lib/parse: simplify parseAddressList</title>
<updated>2021-02-22T10:47:31+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-02-22T10:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=fda424bebc6dedbbcbffe4d330accc70d081b478'/>
<id>fda424bebc6dedbbcbffe4d330accc70d081b478</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>maildir: don't read the full file into memory</title>
<updated>2021-02-08T08:06:42+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-02-08T08:06:25+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=8ecf0b73f41f9319f9d89d61f8d4619aa4e69758'/>
<id>8ecf0b73f41f9319f9d89d61f8d4619aa4e69758</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: don't read the full file into memory</title>
<updated>2021-02-08T07:40:07+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-02-08T07:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=db6848fe1b77bc7f2a657231307d2a4271d41482'/>
<id>db6848fe1b77bc7f2a657231307d2a4271d41482</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: trim excluded tags</title>
<updated>2020-12-02T08:08:19+00:00</updated>
<author>
<name>Kalyan Sriram</name>
<email>kalyan@coderkalyan.com</email>
</author>
<published>2020-11-28T19:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=b56a688589c946ff8224f3d9e2e73de2edbc39b4'/>
<id>b56a688589c946ff8224f3d9e2e73de2edbc39b4</id>
<content type='text'>
Trims whitespace in list of excluded notmuch tags. This allows a comma
separated list with spaces to be correctly processed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Trims whitespace in list of excluded notmuch tags. This allows a comma
separated list with spaces to be correctly processed.
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: remove gc close hooks</title>
<updated>2020-12-02T08:06:34+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-11-26T06:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=a9330f4c63816ed79f6d150e998f003bea9478dd'/>
<id>a9330f4c63816ed79f6d150e998f003bea9478dd</id>
<content type='text'>
We frequently had issues with notmuch segfaulting and my guess is that this
was due to the garbage collection magic used in the module.

This changes to a fork that ripped the functionality out.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We frequently had issues with notmuch segfaulting and my guess is that this
was due to the garbage collection magic used in the module.

This changes to a fork that ripped the functionality out.
</pre>
</div>
</content>
</entry>
<entry>
<title>imap: strip &lt;&gt; from message-ids</title>
<updated>2020-11-14T14:40:13+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-11-08T13:18:14+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=daf214a1f8b9ee1f8eabff9b1a2485eceb19cbd0'/>
<id>daf214a1f8b9ee1f8eabff9b1a2485eceb19cbd0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lib/parse: use go-message msgid parsing if it succeeds</title>
<updated>2020-11-14T14:40:13+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-11-08T12:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=18b0ea571aa1d76af5f250583285a072d2b64c4a'/>
<id>18b0ea571aa1d76af5f250583285a072d2b64c4a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove models.Address in favor of go-message Address</title>
<updated>2020-11-14T14:40:13+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-11-10T18:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=fc9ccc30008e564c1dea23b3bfe480ca5a10c070'/>
<id>fc9ccc30008e564c1dea23b3bfe480ca5a10c070</id>
<content type='text'>
We made a new type out of go-message/mail.Address without any real reason.
This suddenly made it necessary to convert from one to the other without actually
having any benefit whatsoever.
This commit gets rid of the additional type
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We made a new type out of go-message/mail.Address without any real reason.
This suddenly made it necessary to convert from one to the other without actually
having any benefit whatsoever.
This commit gets rid of the additional type
</pre>
</div>
</content>
</entry>
</feed>
