summaryrefslogtreecommitdiff
path: root/content/llcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'content/llcache.c')
-rw-r--r--content/llcache.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/content/llcache.c b/content/llcache.c
index b02d0135f..3862cb467 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -1445,6 +1445,15 @@ nserror llcache_object_notify_users(llcache_object *object)
return error;
continue;
+ } else if (error == NSERROR_NEED_DATA) {
+ /* User requested replay */
+ handle->state = LLCACHE_FETCH_HEADERS;
+
+ /* Continue with the next user -- we'll
+ * reemit the event next time round */
+ user->iterator_target = false;
+ next_user = user->next;
+ continue;
} else if (error != NSERROR_OK) {
user->iterator_target = false;
return error;
@@ -1522,6 +1531,15 @@ nserror llcache_object_notify_users(llcache_object *object)
return error;
continue;
+ } else if (error == NSERROR_NEED_DATA) {
+ /* User requested replay */
+ handle->state = LLCACHE_FETCH_DATA;
+
+ /* Continue with the next user -- we'll
+ * reemit the event next time round */
+ user->iterator_target = false;
+ next_user = user->next;
+ continue;
} else if (error != NSERROR_OK) {
user->iterator_target = false;
return error;