Fix EventBaseOnDestructionCallback to loop FiberManager
authorAndrii Grynenko <andrii@fb.com>
Fri, 19 Feb 2016 19:19:18 +0000 (11:19 -0800)
committerfacebook-github-bot-1 <folly-bot@fb.com>
Fri, 19 Feb 2016 20:20:28 +0000 (12:20 -0800)
Summary: EventBase loop should do it as well, but it's possible for LoopCallback to be removed before EventBaseOnDestructionCallback.

Reviewed By: pavlo-fb

Differential Revision: D2951303

fb-gh-sync-id: 43f5a91e7ecffa7ab7feec32fa45e01b28db66a3
shipit-source-id: 43f5a91e7ecffa7ab7feec32fa45e01b28db66a3

folly/experimental/fibers/FiberManagerMap.cpp

index 851a25f419f72d4841cf93dd6f885ad64c7ccca0..93eb48acb0e0252d74871d831d8a19291af9b267 100644 (file)
@@ -169,6 +169,7 @@ void EventBaseOnDestructionCallback::runLoopCallback() noexcept {
   ThreadLocalCache::erase(evb_);
 
   while (fm->hasTasks()) {
+    fm->loopUntilNoReady();
     evb_.loopOnce();
   }