Files
pytorch/caffe2/utils/signal_handler.cc
Nikita Shulga f82d4b8957 Mark unused functions with C10_UNUSED (#62929)
Summary:
Which fixes number of warnings

Pull Request resolved: https://github.com/pytorch/pytorch/pull/62929

Reviewed By: walterddr, albanD

Differential Revision: D30171953

Pulled By: malfet

fbshipit-source-id: f82475289ff4aebb0c97794114e94a24d00d2ff4
2021-08-09 13:00:33 -07:00

59 lines
1.5 KiB
C++

#include "caffe2/utils/signal_handler.h"
#include "caffe2/core/init.h"
#include "caffe2/core/workspace.h"
namespace {
C10_UNUSED void printBlobSizes() {
::caffe2::Workspace::ForEach(
[&](::caffe2::Workspace* ws) { ws->PrintBlobSizes(); });
}
} // namespace
#if defined(C10_SUPPORTS_FATAL_SIGNAL_HANDLERS)
C10_DEFINE_bool(
caffe2_print_stacktraces,
false,
"If set, prints stacktraces when a fatal signal is raised.");
namespace caffe2 {
C2FatalSignalHandler::C2FatalSignalHandler() {}
C2FatalSignalHandler& C2FatalSignalHandler::getInstance() {
// Leaky singleton to avoid module destructor race.
static C2FatalSignalHandler* handler = new C2FatalSignalHandler();
return *handler;
}
void C2FatalSignalHandler::fatalSignalHandlerPostProcess() {
printBlobSizes();
}
void setPrintStackTracesOnFatalSignal(bool print) {
C2FatalSignalHandler::getInstance().setPrintStackTracesOnFatalSignal(print);
}
bool printStackTracesOnFatalSignal() {
return C2FatalSignalHandler::getInstance().printStackTracesOnFatalSignal();
}
namespace internal {
bool Caffe2InitFatalSignalHandler(int*, char***) {
if (FLAGS_caffe2_print_stacktraces) {
setPrintStackTracesOnFatalSignal(true);
}
return true;
}
REGISTER_CAFFE2_INIT_FUNCTION(
Caffe2InitFatalSignalHandler,
&Caffe2InitFatalSignalHandler,
"Inits signal handlers for fatal signals so we can see what if"
" caffe2_print_stacktraces is set.");
} // namespace internal
} // namespace caffe2
#endif // defined(C10_SUPPORTS_FATAL_SIGNAL_HANDLERS)