/usr/include/wibble/sys/signal.h is in libwibble-dev 1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | // -*- C++ -*-
#ifndef WIBBLE_SYS_SIGNAL_H
#define WIBBLE_SYS_SIGNAL_H
#include <wibble/sys/macros.h>
#include <wibble/exception.h>
#include <signal.h>
namespace wibble {
namespace sys {
namespace sig {
#ifdef POSIX
/**
* RAII-style sigprocmask wrapper
*/
struct ProcMask
{
sigset_t oldset;
ProcMask(const sigset_t& newset, int how = SIG_BLOCK)
{
if (sigprocmask(how, &newset, &oldset) < 0)
throw wibble::exception::System("setting signal mask");
}
~ProcMask()
{
if (sigprocmask(SIG_SETMASK, &oldset, NULL) < 0)
throw wibble::exception::System("restoring signal mask");
}
};
struct Action
{
int signum;
struct sigaction oldact;
Action(int signum, const struct sigaction& act) : signum(signum)
{
if (sigaction(signum, &act, &oldact) < 0)
throw wibble::exception::System("setting signal action");
}
~Action()
{
if (sigaction(signum, &oldact, NULL) < 0)
throw wibble::exception::System("restoring signal action");
}
};
#endif
}
}
}
// vim:set ts=4 sw=4:
#endif
|