Require registrationComplete() not only in dbg builds
authorAndrii Grynenko <andrii@fb.com>
Thu, 6 Apr 2017 17:10:38 +0000 (10:10 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 6 Apr 2017 17:21:20 +0000 (10:21 -0700)
Summary: Improve error message and change DFATAL to FATAL.

Reviewed By: yfeldblum, meyering

Differential Revision: D4837840

fbshipit-source-id: 54ae53c9356fc2e85266b037996aa7b2bae3d4e4

folly/Singleton-inl.h

index 2e69d90e2d9a0673bbaac750b6ada2999c7078eb..e5b21dd5318cca600cda5946ecb4fb2bcf6f0e61 100644 (file)
@@ -238,8 +238,12 @@ void SingletonHolder<T>::createInstance() {
       stack_trace = "Stack trace:\n" + stack_trace;
     }
 
-    LOG(DFATAL) << "Singleton " << type().name() << " requested before "
-                << "registrationComplete() call. " << stack_trace;
+    LOG(FATAL) << "Singleton " << type().name() << " requested before "
+               << "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;