Commit 99ef4c99 authored by Dan Melnic's avatar Dan Melnic Committed by Facebook Github Bot

Make rcu_default_domain_ folly::Indestructible<rcu_domain<RcuTag>> to avoid...

Make rcu_default_domain_ folly::Indestructible<rcu_domain<RcuTag>> to avoid asserts on _dl_open/_dl_init __static_initialization_and_destruction_0

Summary: Make rcu_default_domain_ folly::Indestructible<rcu_domain<RcuTag>> to avoid asserts on _dl_open/_dl_init __static_initialization_and_destruction_0

Reviewed By: yfeldblum

Differential Revision: D9845303

fbshipit-source-id: e858e86a6f7885bf6a3ad8d5e957ee947a5ce2b3
parent 89fe1eb4
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
namespace folly { namespace folly {
FOLLY_STATIC_CTOR_PRIORITY_MAX rcu_domain<RcuTag> rcu_default_domain_; FOLLY_STATIC_CTOR_PRIORITY_MAX folly::Indestructible<rcu_domain<RcuTag>>
rcu_default_domain_;
} // namespace folly } // namespace folly
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <functional> #include <functional>
#include <limits> #include <limits>
#include <folly/Indestructible.h>
#include <folly/Optional.h> #include <folly/Optional.h>
#include <folly/detail/TurnSequencer.h> #include <folly/detail/TurnSequencer.h>
#include <folly/executors/QueuedImmediateExecutor.h> #include <folly/executors/QueuedImmediateExecutor.h>
...@@ -379,10 +380,10 @@ class rcu_domain { ...@@ -379,10 +380,10 @@ class rcu_domain {
void half_sync(bool blocking, list_head& cbs); void half_sync(bool blocking, list_head& cbs);
}; };
extern rcu_domain<RcuTag> rcu_default_domain_; extern folly::Indestructible<rcu_domain<RcuTag>> rcu_default_domain_;
inline rcu_domain<RcuTag>* rcu_default_domain() { inline rcu_domain<RcuTag>* rcu_default_domain() {
return &rcu_default_domain_; return &(*rcu_default_domain_);
} }
// Main reader guard class. // Main reader guard class.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment