mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
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
59 lines
1.5 KiB
C++
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)
|