aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-23 16:00:45 -0800
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-29 08:25:14 -0800
commit8e9cf9ecc6241f740edfa5bdc3533a2d0f2bb3e1 (patch)
tree04c765d805124563ea1fdb1c026b7d8cfda5682b /lib
parent940a1f9f331d971562d6140bf5da58a9f5620376 (diff)
Return signal value if session loop is terminated by signal and improve documentation
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse_signals.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/fuse_signals.c b/lib/fuse_signals.c
index 0163783..a1bf1d5 100644
--- a/lib/fuse_signals.c
+++ b/lib/fuse_signals.c
@@ -10,18 +10,26 @@
#include "config.h"
#include "fuse_lowlevel.h"
+#include "fuse_i.h"
#include <stdio.h>
#include <string.h>
#include <signal.h>
+#include <stdlib.h>
static struct fuse_session *fuse_instance;
static void exit_handler(int sig)
{
(void) sig;
- if (fuse_instance)
+ if (fuse_instance) {
fuse_session_exit(fuse_instance);
+ if(sig <= 0) {
+ fprintf(stderr, "assertion error: signal value <= 0\n");
+ abort();
+ }
+ fuse_instance->error = sig;
+ }
}
static int set_one_signal_handler(int sig, void (*handler)(int), int remove)