This prevents us from blocking network-only operations which follow cache-and-network operations, if the latter has queued them up while the cached result comes in.
In other words, if result.stale is set, we still allow dispatched.delete to remove the key and unblock it if the current operations queue contains that operation. This basically is the equivalent of saying that we unblock operations, even if they're marked as stale if a new operation for them is already waiting to be sent.
Set of changes
Allow operations to be run if they're queued up already while a result.stale marked result comes in
Resolves regression from #3157
Summary
This prevents us from blocking
network-only
operations which followcache-and-network
operations, if the latter has queued them up while the cached result comes in.In other words, if
result.stale
is set, we still allowdispatched.delete
to remove the key and unblock it if the current operations queue contains that operation. This basically is the equivalent of saying that we unblock operations, even if they're marked asstale
if a new operation for them is already waiting to be sent.Set of changes
result.stale
marked result comes in