diff options
author | Michael Lehenbauer <mikelehen@gmail.com> | 2018-02-20 13:03:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-20 13:03:40 -0800 |
commit | 9bf73ab5f06c0cf03a43e99a24527e37ccd12ea7 (patch) | |
tree | 197de7c5bf86542e1265e9a2fe1a33237f11b74d /Firestore/core/src/firebase/firestore/remote | |
parent | 7a4a2ea10844afd6a58dace46854fae74399f55c (diff) |
Fix two stream close issues (b/73167987, b/73382103). (#810)
* Fix b/73167987: Upon receiving a permanent write error when we had additional
pendingWrites to send, we were restarting the stream with a new delegate and
then immediately setting the delegate to nil, causing the stream to ignore
all GRPC events for the stream.
* Fix b/73382103: We were attempting to gracefully teardown the write stream (i.e.
send an empty WriteRequest) even when the stream was already failed due
to an error. This caused no harm other than log pollution, but I fixed it.
* Use -[GRPCCall setResponseDispatchQueue] to dispatch GRPC callbacks directly onto the Firestore worker queue. This saves a double-dispatch and simplifies our logic.
* Add stricter assertions regarding stream state now that dispatch queue / callback filter race conditions are eliminated.
Diffstat (limited to 'Firestore/core/src/firebase/firestore/remote')
0 files changed, 0 insertions, 0 deletions