diff options
author | Nikolaus Rath <Nikolaus@rath.org> | 2016-11-23 16:00:45 -0800 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2016-11-29 08:25:14 -0800 |
commit | 8e9cf9ecc6241f740edfa5bdc3533a2d0f2bb3e1 (patch) | |
tree | 04c765d805124563ea1fdb1c026b7d8cfda5682b /lib | |
parent | 940a1f9f331d971562d6140bf5da58a9f5620376 (diff) |
Return signal value if session loop is terminated by signal and improve documentation
Diffstat (limited to 'lib')
-rw-r--r-- | lib/fuse_signals.c | 10 |
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) |