mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
36608c7820
Summary: When running the watchman integration tests, I saw that some of them were fataling here: diffusion/FBS/browse/master/fbcode/thrift/lib/cpp2/async/StreamPublisher-inl.h$71 In this situation we're tearing down all the subscribers via `Journal::cancelAllSubscribers` and this causes the stream be destroyed and trigger this FATAL check. We need to explicitly complete it before we can proceeed, so we do the gross thing and call this in the destructor of a little wrapper. This is made a little more complex because the disconnection handler has to inform the Journal that it was torn down in the case where the client has gone away. The result is that we need to be careful to avoid the destructor on Journal callback from running while we hold the Journal subscriber lock. Reviewed By: strager Differential Revision: D10024271 fbshipit-source-id: 06a9d40f7f6e46fe35ffcedba2669e27e6624427 |
||
---|---|---|
.. | ||
test | ||
CMakeLists.txt | ||
Journal.cpp | ||
Journal.h | ||
JournalDelta.cpp | ||
JournalDelta.h | ||
JournalDeltaPtr.cpp | ||
JournalDeltaPtr.h |