Fix copyright lines
[folly.git] / folly / init / Init.cpp
index 46d30a08750c3cf5bc945339e14678a8a43845c7..895fb3fa9998602d5c4956d71debf8eacdf561a4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2016-present Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 #include <folly/init/Init.h>
-#include <folly/Singleton.h>
-#include <folly/experimental/symbolizer/SignalHandler.h>
 
 #include <glog/logging.h>
-#include <gflags/gflags.h>
+
+#include <folly/Singleton.h>
+#include <folly/portability/Config.h>
+
+#ifdef FOLLY_USE_SYMBOLIZER
+#include <folly/experimental/symbolizer/SignalHandler.h> // @manual
+#endif
+#include <folly/portability/GFlags.h>
 
 namespace folly {
 
 void init(int* argc, char*** argv, bool removeFlags) {
+#ifdef FOLLY_USE_SYMBOLIZER
   // Install the handler now, to trap errors received during startup.
   // The callbacks, if any, can be installed later
   folly::symbolizer::installFatalSignalHandler();
+#elif !defined(_WIN32)
+  google::InstallFailureSignalHandler();
+#endif
+
+  // Move from the registration phase to the "you can actually instantiate
+  // things now" phase.
+  folly::SingletonVault::singleton()->registrationComplete();
 
-  google::ParseCommandLineFlags(argc, argv, removeFlags);
+  gflags::ParseCommandLineFlags(argc, argv, removeFlags);
 
   auto programName = argc && argv && *argc > 0 ? (*argv)[0] : "unknown";
   google::InitGoogleLogging(programName);
 
+#ifdef FOLLY_USE_SYMBOLIZER
   // Don't use glog's DumpStackTraceAndExit; rely on our signal handler.
   google::InstallFailureFunction(abort);
 
-  // Move from the registration phase to the "you can actually instantiate
-  // things now" phase.
-  folly::SingletonVault::singleton()->registrationComplete();
-
   // Actually install the callbacks into the handler.
   folly::symbolizer::installFatalSignalCallbacks();
+#endif
+}
+
+Init::Init(int* argc, char*** argv, bool removeFlags) {
+  init(argc, argv, removeFlags);
+}
+
+Init::~Init() {
+  SingletonVault::singleton()->destroyInstances();
 }
-} //!folly
+} // namespace folly