diff options
author | Tim Culverhouse <tim@timculverhouse.com> | 2023-06-20 11:07:06 -0500 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-06-20 23:16:25 +0200 |
commit | 982ee4128c584759e518b6d541ca01cce6c5d547 (patch) | |
tree | 092a18234e6fc601e1af81e41aec0289d846479c /lib/msgstore.go | |
parent | e984db17e5459b58b566426eb84236bf1b1ee6aa (diff) | |
download | aerc-982ee4128c584759e518b6d541ca01cce6c5d547.tar.gz |
msgstore: pass context from dirlist to msgstore
Most, if not all, requests to the worker that may need cancellation are
sent by the msgstore. These requests are typically only relevant when
the msgstore is the selected one. Pass a context from the dirlister to
the msgstore when it is selected. This context will be passed in future
commits to worker requests. The context is cancelled when a new
directory is selected.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'lib/msgstore.go')
-rw-r--r-- | lib/msgstore.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go index 98fb47b7..f7ffaa51 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -1,6 +1,7 @@ package lib import ( + "context" "io" "sync" "time" @@ -21,6 +22,9 @@ type MessageStore struct { Messages map[uint32]*models.MessageInfo Sorting bool + // ctx is given by the directory lister + ctx context.Context + // Ordered list of known UIDs uids []uint32 threads []*types.Thread @@ -118,6 +122,10 @@ func NewMessageStore(worker *types.Worker, } } +func (store *MessageStore) SetContext(ctx context.Context) { + store.ctx = ctx +} + func (store *MessageStore) FetchHeaders(uids []uint32, cb func(types.WorkerMessage), ) { |