diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-03-01 12:10:13 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-03-01 12:10:13 +0000 |
commit | 5d9ce36da4688ba2c14f658ed40b5b4ad971879b (patch) | |
tree | 379c5435a0741965848f8eb2449bef9c8b4d080c /lib/fuse_loop.c | |
parent | ee588c01dca3991807aea456a66246ff8ad0c332 (diff) | |
download | libfuse-5d9ce36da4688ba2c14f658ed40b5b4ad971879b.tar.gz |
fix
Diffstat (limited to 'lib/fuse_loop.c')
-rw-r--r-- | lib/fuse_loop.c | 10 |
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; } |