git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tests: Convert OVS_WAIT_* macros to shell functions.
[sliver-openvswitch.git]
/
lib
/
fatal-signal.c
diff --git
a/lib/fatal-signal.c
b/lib/fatal-signal.c
index
ed82173
..
a6ce1b7
100644
(file)
--- a/
lib/fatal-signal.c
+++ b/
lib/fatal-signal.c
@@
-27,10
+27,17
@@
#include "poll-loop.h"
#include "shash.h"
#include "sset.h"
#include "poll-loop.h"
#include "shash.h"
#include "sset.h"
+#include "signals.h"
#include "socket-util.h"
#include "util.h"
#include "vlog.h"
#include "socket-util.h"
#include "util.h"
#include "vlog.h"
+#include "type-props.h"
+
+#ifndef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MAX TYPE_MAXIMUM(sig_atomic_t)
+#endif
+
VLOG_DEFINE_THIS_MODULE(fatal_signal);
/* Signals to catch. */
VLOG_DEFINE_THIS_MODULE(fatal_signal);
/* Signals to catch. */
@@
-67,9
+74,7
@@
fatal_signal_init(void)
inited = true;
inited = true;
- if (pipe(signal_fds)) {
- ovs_fatal(errno, "could not create pipe");
- }
+ xpipe(signal_fds);
set_nonblocking(signal_fds[0]);
set_nonblocking(signal_fds[1]);
set_nonblocking(signal_fds[0]);
set_nonblocking(signal_fds[1]);
@@
-79,12
+84,10
@@
fatal_signal_init(void)
struct sigaction old_sa;
sigaddset(&fatal_signal_set, sig_nr);
struct sigaction old_sa;
sigaddset(&fatal_signal_set, sig_nr);
- if (sigaction(sig_nr, NULL, &old_sa)) {
- ovs_fatal(errno, "sigaction");
- }
+ xsigaction(sig_nr, NULL, &old_sa);
if (old_sa.sa_handler == SIG_DFL
&& signal(sig_nr, fatal_signal_handler) == SIG_ERR) {
if (old_sa.sa_handler == SIG_DFL
&& signal(sig_nr, fatal_signal_handler) == SIG_ERR) {
-
ovs_fatal(errno, "signal"
);
+
VLOG_FATAL("signal failed (%s)", strerror(errno)
);
}
}
atexit(atexit_handler);
}
}
atexit(atexit_handler);