folly/singleton: fatal in unrecoverable error cases
authorSteve O'Brien <steveo@fb.com>
Tue, 7 Jul 2015 23:10:07 +0000 (16:10 -0700)
committerSara Golemon <sgolemon@fb.com>
Thu, 9 Jul 2015 22:32:54 +0000 (15:32 -0700)
commit6caa69566e8e747ffcdb5fb5499315b0e5703ef7
tree9301ecfd3be979f7d550f37f6839bacb6c5acd0f
parentbf52653d56e76857cf2712f36c034ae9f8bb15c6
folly/singleton: fatal in unrecoverable error cases

Summary: Early in the startup process there may not be a default signal handler installed, and stack traces are not available; also during the startup process is when init-order fiascos occur.  Dump a stacktrace and fatal when an unregistered singleton is used.

Also fatals -- with glog `LOG(FATAL)`, which triggers an ABRT signal -- on other illegal and unrecoverable usage like double-registration or circular dependency.

Reviewed By: @andriigrynenko

Differential Revision: D2200408
folly/Singleton-inl.h
folly/SingletonStackTrace.cpp
folly/test/SingletonTest.cpp