aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_loop_mt.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fuse_loop_mt.c')
-rw-r--r--lib/fuse_loop_mt.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/fuse_loop_mt.c b/lib/fuse_loop_mt.c
index 540607b..16be149 100644
--- a/lib/fuse_loop_mt.c
+++ b/lib/fuse_loop_mt.c
@@ -74,12 +74,14 @@ static void *do_work(void *data)
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
while (!fuse_session_exited(w->se)) {
- int res = fuse_chan_receive(w->prevch, buf, bufsize);
- if (!res)
+ int res = fuse_chan_recv(w->prevch, buf, bufsize);
+ if (res == -EINTR)
continue;
- if (res == -1) {
- fuse_session_exit(w->se);
- w->error = -1;
+ if (res <= 0) {
+ if (res < 0) {
+ fuse_session_exit(w->se);
+ w->error = -1;
+ }
break;
}