From 2bf6f465d9d9b418c09f02a06842a34a67123907 Mon Sep 17 00:00:00 2001 From: Hans Fugal Date: Fri, 12 Jun 2015 13:11:35 -0700 Subject: [PATCH] apple-gate ThreadLocal in fibers code Summary: Some internal malloc shims broke on using folly::ThreadLocal, so only do that for `__APPLE__`. Reviewed By: @brianwatling Differential Revision: D2151318 --- folly/experimental/fibers/FiberManager-inl.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/folly/experimental/fibers/FiberManager-inl.h b/folly/experimental/fibers/FiberManager-inl.h index 42d14ac0..e0c7e578 100644 --- a/folly/experimental/fibers/FiberManager-inl.h +++ b/folly/experimental/fibers/FiberManager-inl.h @@ -22,7 +22,9 @@ #include #include #include +#ifdef __APPLE__ #include +#endif #include #include #include @@ -455,8 +457,13 @@ T& FiberManager::local() { template T& FiberManager::localThread() { +#ifndef __APPLE__ + static thread_local T t; + return t; +#else // osx doesn't support thread_local static ThreadLocal t; return *t; +#endif } inline void FiberManager::initLocalData(Fiber& fiber) { -- 2.34.1