aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_loop_mt.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2013-03-19 17:33:46 +0100
committerMiklos Szeredi <mszeredi@suse.cz>2013-03-19 17:33:46 +0100
commit4dec04c7edba86d45371059c6c99016f08762fec (patch)
tree49873639256c59e76b4e23aa64e376b14796b9cb /lib/fuse_loop_mt.c
parent4e602d6f0c1cd71bcba77f8e6ddcc7e6034f4d2d (diff)
parent44088bc7fbe7c9234c090756dbf10742b1a281b1 (diff)
downloadlibfuse-4dec04c7edba86d45371059c6c99016f08762fec.tar.gz
Merge branch 'fuse_2_9_bugfix'
Diffstat (limited to 'lib/fuse_loop_mt.c')
-rw-r--r--lib/fuse_loop_mt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/fuse_loop_mt.c b/lib/fuse_loop_mt.c
index 7ae5890..82e3001 100644
--- a/lib/fuse_loop_mt.c
+++ b/lib/fuse_loop_mt.c
@@ -241,9 +241,11 @@ int fuse_session_loop_mt(struct fuse_session *se)
while (!fuse_session_exited(se))
sem_wait(&mt.finish);
+ pthread_mutex_lock(&mt.lock);
for (w = mt.main.next; w != &mt.main; w = w->next)
pthread_cancel(w->thread_id);
mt.exit = 1;
+ pthread_mutex_unlock(&mt.lock);
while (mt.main.next != &mt.main)
fuse_join_worker(&mt, mt.main.next);