about summary refs log tree commit diff stats
path: root/lib/msgstore.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msgstore.go')
-rw-r--r--lib/msgstore.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 595908d..038c3ca 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -92,7 +92,18 @@ func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) {
 		}
 	}
 	if len(toFetch) > 0 {
-		store.worker.PostAction(&types.FetchFullMessages{Uids: toFetch}, nil)
+		store.worker.PostAction(&types.FetchFullMessages{
+			Uids: toFetch,
+		}, func(msg types.WorkerMessage) {
+			switch msg.(type) {
+			case *types.Error:
+				for _, uid := range toFetch {
+					if _, ok := store.bodyCallbacks[uid]; ok {
+						delete(store.bodyCallbacks, uid)
+					}
+				}
+			}
+		})
 	}
 }
 
@@ -169,6 +180,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
 				for _, cb := range cbs {
 					cb(msg.Content.Reader)
 				}
+				delete(store.bodyCallbacks, msg.Content.Uid)
 			}
 		}
 	case *types.MessagesDeleted:
lame/go.mod?h=0.5.2&id=f3535703b0b92ff88d7a7fb6837078a21967c832'>^
43dba93 ^
f3158b3 ^
89f1684 ^
f3158b3 ^
89f1684 ^

6473848 ^
89f1684 ^



0c2ede5 ^
b2fa5a1 ^
89f1684 ^





513e8aa ^
89f1684 ^
974b22c ^


8d20e92 ^
3f452ca ^
f3158b3 ^
89f1684 ^



974b22c ^
89f1684 ^
3836d24 ^
56b84d3 ^
280d8e7 ^
f3158b3 ^
1f6c108 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48