LOG(FATAL) << "Registering mock before singleton was registered: "
<< type().name();
}
- destroyInstance();
+ if (state_ == SingletonHolderState::Living) {
+ destroyInstance();
+ }
{
auto creationOrder = vault_.creationOrder_.wlock();
}
LOG(FATAL) << "Singleton " << type().name() << " requested before "
- << "registrationComplete() call. " << stack_trace;
+ << "registrationComplete() call.\n"
+ << "This usually means that either main() never called "
+ << "folly::init, or singleton was requested before main() "
+ << "(which is not allowed).\n"
+ << stack_trace;
}
if (state->state == SingletonVault::SingletonVaultState::Quiescing) {
return;
vault_.creationOrder_.wlock()->push_back(type());
}
-}
+} // namespace detail
-}
+} // namespace folly