Commits


Konstantin Varlamov authored and GitHub committed e0652613ae0
Fix deadlock in `ExecutorLibdispatch` destructor (#1835) There is a deadlock that is triggered while running integration tests in XCode 10 (previous versions of XCode seem to work fine). During integration test case shutdown, two executors used in Firestore, the worker executor and the user executor, happen to be destroyed at the same time on each other's dispatch queues (worker executor is being destroyed on the main queue, which is also the user queue, and user executor is being destroyed on the worker queue). Each calls `RunSynchronized` in its destructor, with the result that they deadlock. The fix uses `std::atomic` as the synchronization mechanism instead. Tested -- ran integration tests under TSan in XCode 10 with no issues.