Adding a release function for ThreadLocalPtr.
[folly.git] / folly / ThreadLocal.h
index bae58411713318a01a404206eb1478c40b550807..05d26bfbe1858d5e34c9a9cb6fd544b40dfc9eaa 100644 (file)
@@ -165,6 +165,13 @@ class ThreadLocalPtr {
     return *get();
   }
 
+  T* release() {
+    threadlocal_detail::ElementWrapper& w =
+      threadlocal_detail::StaticMeta<Tag>::get(id_);
+
+    return static_cast<T*>(w.release());
+  }
+
   void reset(T* newPtr = nullptr) {
     threadlocal_detail::ElementWrapper& w =
       threadlocal_detail::StaticMeta<Tag>::get(id_);