#include <folly/Demangle.h>
#include <folly/Executor.h>
#include <folly/experimental/ReadMostlySharedPtr.h>
+#include <folly/detail/StaticSingletonManager.h>
#include <algorithm>
#include <atomic>
// tests only.
template <typename VaultTag = detail::DefaultTag>
static SingletonVault* singleton() {
- static SingletonVault* vault = new SingletonVault();
+ static SingletonVault* vault =
+ detail::createGlobal<SingletonVault, VaultTag>();
return vault;
}
typedef std::string(*StackTraceGetterPtr)();
static std::atomic<StackTraceGetterPtr>& stackTraceGetter() {
- static std::atomic<StackTraceGetterPtr> stackTraceGetterPtr;
- return stackTraceGetterPtr;
+ static std::atomic<StackTraceGetterPtr>* stackTraceGetterPtr =
+ detail::createGlobal<std::atomic<StackTraceGetterPtr>,
+ SingletonVault>();
+ return *stackTraceGetterPtr;
}
private:
};
static Entry& entryInstance() {
- static auto entry = new Entry();
+ static auto entry = detail::createGlobal<Entry, Tag>();
return *entry;
}