From 897366619be60e27083c747f2caf8635f0b530cf Mon Sep 17 00:00:00 2001 From: Igor Sugak Date: Wed, 29 Mar 2017 18:14:16 -0700 Subject: [PATCH] Backed out changeset d4e3fdfd5775 Summary: https://our.intern.facebook.com/intern/sevmanager/view/s/145809/?hc_location=ufi ``` hg backout d4e3fdfd57750c8dcabdb4c01ab3b528c4818624 ``` Reviewed By: lbrandy Differential Revision: D4799568 fbshipit-source-id: 76366040702e68becc7e245d7ce15832f933e10e --- folly/Singleton-inl.h | 11 ----------- folly/Singleton.cpp | 22 ---------------------- folly/Singleton.h | 4 +--- 3 files changed, 1 insertion(+), 36 deletions(-) diff --git a/folly/Singleton-inl.h b/folly/Singleton-inl.h index 40c7a27a..e6675165 100644 --- a/folly/Singleton-inl.h +++ b/folly/Singleton-inl.h @@ -228,17 +228,6 @@ void SingletonHolder::createInstance() { creating_thread_.store(std::this_thread::get_id(), std::memory_order_release); auto state = vault_.state_.rlock(); - if (vault_.type_ != SingletonVault::Type::Relaxed && - !state->registrationComplete) { - auto stack_trace_getter = SingletonVault::stackTraceGetter().load(); - auto stack_trace = stack_trace_getter ? stack_trace_getter() : ""; - if (!stack_trace.empty()) { - stack_trace = "Stack trace:\n" + stack_trace; - } - - LOG(FATAL) << "Singleton " << type().name() << " requested before " - << "registrationComplete() call. " << stack_trace; - } if (state->state == SingletonVault::SingletonVaultState::Quiescing) { return; } diff --git a/folly/Singleton.cpp b/folly/Singleton.cpp index 07ec2666..67e6fd81 100644 --- a/folly/Singleton.cpp +++ b/folly/Singleton.cpp @@ -16,10 +16,6 @@ #include -#ifndef _WIN32 -#include -#endif - #include #include #include @@ -28,26 +24,8 @@ #include -#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) -static void hs_init_weak(int* argc, char** argv[]) - __attribute__((__weakref__("hs_init"))); -#endif - namespace folly { -SingletonVault::Type SingletonVault::defaultVaultType() { -#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) - bool isPython = dlsym(RTLD_DEFAULT, "Py_Main"); - bool isHaskell = &::hs_init_weak || dlsym(RTLD_DEFAULT, "hs_init"); - bool isJVM = dlsym(RTLD_DEFAULT, "JNI_GetCreatedJavaVMs"); - bool isD = dlsym(RTLD_DEFAULT, "_d_run_main"); - - return (isPython || isHaskell || isJVM || isD) ? Type::Relaxed : Type::Strict; -#else - return Type::Relaxed; -#endif -} - namespace detail { [[noreturn]] void singletonWarnDoubleRegistrationAndAbort( diff --git a/folly/Singleton.h b/folly/Singleton.h index e8344cef..2c699e47 100644 --- a/folly/Singleton.h +++ b/folly/Singleton.h @@ -358,9 +358,7 @@ class SingletonVault { } }; - static Type defaultVaultType(); - - explicit SingletonVault(Type type = defaultVaultType()) : type_(type) {} + explicit SingletonVault(Type type = Type::Strict) : type_(type) {} // Destructor is only called by unit tests to check destroyInstances. ~SingletonVault(); -- 2.34.1