aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_loop.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2006-03-01 12:10:13 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2006-03-01 12:10:13 +0000
commit5d9ce36da4688ba2c14f658ed40b5b4ad971879b (patch)
tree379c5435a0741965848f8eb2449bef9c8b4d080c /lib/fuse_loop.c
parentee588c01dca3991807aea456a66246ff8ad0c332 (diff)
downloadlibfuse-5d9ce36da4688ba2c14f658ed40b5b4ad971879b.tar.gz
fix
Diffstat (limited to 'lib/fuse_loop.c')
-rw-r--r--lib/fuse_loop.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/fuse_loop.c b/lib/fuse_loop.c
index 1609bfc..6a6edaa 100644
--- a/lib/fuse_loop.c
+++ b/lib/fuse_loop.c
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
int fuse_session_loop(struct fuse_session *se)
{
@@ -23,16 +24,15 @@ int fuse_session_loop(struct fuse_session *se)
}
while (!fuse_session_exited(se)) {
- res = fuse_chan_receive(ch, buf, bufsize);
- if (!res)
+ res = fuse_chan_recv(ch, buf, bufsize);
+ if (res == -EINTR)
continue;
- if (res == -1)
+ if (res <= 0)
break;
fuse_session_process(se, buf, res, ch);
- res = 0;
}
free(buf);
fuse_session_reset(se);
- return res;
+ return res < 0 ? -1 : 0;
}