aerc/worker/imap
Tim Culverhouse f4d6ade429 imap: prevent deadlock from posting actions to self
The IMAP worker has a few methods that post a new Action to itself. This
can create a deadlock when the worker.Actions channel is full: The
worker can't accept a new Action because it's trying to post an action.
This is most noticeable when cached headers are enabled and the message
list is scrolled fast.

Use a goroutine to post actions to the worker when posting from within
the worker.

Fixes: https://todo.sr.ht/~rjarry/aerc/45
Fixes: 7aa71d334b ("imap: add option to cache headers")
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
2022-09-20 00:03:36 +02:00
..
cache.go imap: prevent deadlock from posting actions to self 2022-09-20 00:03:36 +02:00
checkmail.go logging: use level-based logger functions 2022-07-23 22:52:15 +02:00
configure.go lint: work nicely with wrapped errors (errorlint) 2022-08-04 21:58:04 +02:00
connect.go lint: remove redundant returns (S1023) 2022-08-04 21:57:45 +02:00
create.go go vet: composite literal uses unkeyed fields 2022-03-18 13:33:16 +01:00
fetch.go lint: work nicely with wrapped errors (errorlint) 2022-08-04 21:58:04 +02:00
flags.go imap: prevent deadlock from posting actions to self 2022-09-20 00:03:36 +02:00
idler.go lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
imap.go go.mod: change base git url 2021-11-05 10:21:45 +01:00
list.go lint: apply new formatting rules 2022-08-01 10:44:52 +02:00
movecopy.go imap: implement MoveMessages handling 2022-08-22 15:46:53 +02:00
observer.go lint: apply new formatting rules 2022-08-01 10:44:52 +02:00
open.go lint: ensure errors are at least logged (errcheck) 2022-08-04 21:57:57 +02:00
remove.go go vet: composite literal uses unkeyed fields 2022-03-18 13:33:16 +01:00
search.go lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
seqmap.go imap: create copy of uids to retain sort order 2022-08-22 15:46:49 +02:00
seqmap_test.go imap: create copy of uids to retain sort order 2022-08-22 15:46:49 +02:00
worker.go imap: implement MoveMessages handling 2022-08-22 15:46:53 +02:00