X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2Fexperimental%2Fsymbolizer%2FSignalHandler.cpp;fp=folly%2Fexperimental%2Fsymbolizer%2FSignalHandler.cpp;h=b5dd4c140f8ba102f10b9fa897cb3485c1b88856;hp=5319b11a0e39df9dde41da1b921bf8d741c83920;hb=74ea0a31f65bcb4a6debc997a57f9cc1b3882d6b;hpb=70b158bb1a240cf5c50b9fd295f538f6eb2432a7 diff --git a/folly/experimental/symbolizer/SignalHandler.cpp b/folly/experimental/symbolizer/SignalHandler.cpp index 5319b11a..b5dd4c14 100644 --- a/folly/experimental/symbolizer/SignalHandler.cpp +++ b/folly/experimental/symbolizer/SignalHandler.cpp @@ -18,13 +18,15 @@ #include +#include +#include #include +#include + +#include #include #include #include -#include -#include -#include #include #include @@ -33,6 +35,7 @@ #include #include #include +#include #include #include @@ -128,7 +131,9 @@ void callPreviousSignalHandler(int signum) { // in our signal handler at a time. // // Leak it so we don't have to worry about destruction order -auto gSignalSafeElfCache = new SignalSafeElfCache(kFatalSignalHandlerCacheSize); +constexpr size_t kMinSignalSafeElfCacheSize = 500; +auto gSignalSafeElfCache = new SignalSafeElfCache( + std::max(countLoadedElfFiles(), kMinSignalSafeElfCacheSize)); // Buffered writer (using a fixed-size buffer). We try to write only once // to prevent interleaving with messages written from other threads.