#include "CxxUtils/SealCommon.h"
#include "CxxUtils/SealSignal.h"
#include "CxxUtils/SealDebug.h"
#include "CxxUtils/SealSharedLib.h"
#include <cassert>
#include <cstring>
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <sys/stat.h>
#include <unistd.h>
Go to the source code of this file.
|
| namespace | Athena |
| | Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc.h and will be non-nullptr in case the GaudiSvc/AthenaKernel shared libraries have been loaded.
|
|
| static pid_t | ProcessInfo__pid (void) |
| | Get the process id.
|
| static pid_t | ProcessInfo__ppid (void) |
| | Get the parent process id.
|
| static void | Athena::SignalDumpLibs (const SharedLibrary::LibraryInfo &info, IOFD fd) |
| | Internal #Signal::fataldump() dumper to produce the list of currently loaded shared libraries.
|
| void Signal::handleQuit | Athena::ATLAS_NOT_THREAD_SAFE (QuitHook hook) |
| void Signal::handleFatal | Athena::ATLAS_NOT_THREAD_SAFE (const char *applicationName, IOFD fd, FatalHook hook, FatalReturn mainreturn, unsigned options) |
| | Install default handler for fatal signals.
|
| void Signal::quit | Athena::ATLAS_NOT_THREAD_SAFE (int sig, siginfo_t *info, void *x) |
| | The quit signal handler.
|
| bool Signal::fatalDump | Athena::ATLAS_NOT_THREAD_SAFE (int sig, siginfo_t *info, void *extra, IOFD fd, unsigned options) |
| StatusCode ROOTMessageFilterSvc::initialize | Athena::ATLAS_NOT_THREAD_SAFE (void) |
| | Return the file descriptor #fataldump() uses for output.
|
| void CxxUtils_installFatalHandler | ATLAS_NOT_THREAD_SAFE () |
| | Install fatal handler with default options. This is meant to be easy to call from python via ctypes.
|
◆ ATLAS_NOT_THREAD_SAFE()
| void CxxUtils_installFatalHandler ATLAS_NOT_THREAD_SAFE |
( |
void | | ) |
|
Install fatal handler with default options. This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
Definition at line 1639 of file SealSignal.cxx.
1640 {
1641 Athena::Signal::handleFatal(nullptr, 1);
1642 }
◆ ProcessInfo__pid()
| pid_t ProcessInfo__pid |
( |
void | | ) |
|
|
static |
Get the process id.
Definition at line 74 of file SealSignal.cxx.
75{
76#ifdef _WIN32
77 return GetCurrentProcessId ();
78#else
79 return ::getpid ();
80#endif
81}
◆ ProcessInfo__ppid()
| pid_t ProcessInfo__ppid |
( |
void | | ) |
|
|
static |
Get the parent process id.
Definition at line 85 of file SealSignal.cxx.
86{
87#ifdef _WIN32
88 PROCESS_BASIC_INFORMATION pbi;
89 if (NtQueryInformationProcess (GetCurrentProcess(),ProcessBasicInformation,
90 &pbi, sizeof (pbi), 0) == STATUS_SUCCESS)
91 return pbi.InheritedFromUniqueProcessId;
92
93
94 assert (false);
95 return -1;
96#else
97 return ::getppid ();
98#endif
99}
◆ SIGNAL_MESSAGE_BUFSIZE
| const int SIGNAL_MESSAGE_BUFSIZE = 2048 |
|
static |