aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <mszeredi@suse.cz>2011-02-02 12:18:38 +0100
committerGravatar Miklos Szeredi <mszeredi@suse.cz>2011-02-02 12:18:38 +0100
commit71b1c37a66b187404f2099ddbfb0d3912e65b821 (patch)
tree84d867fa8e1b731cf1a1f44c2ee9c0d91b7a4ccf
parentcbd3a2a84068aae6e3fe32939d88470d712dbf47 (diff)
libfuse: fuse_session_loop_mt() shouldn't pause when exiting worker threads
In fuse_session_loop_mt() don't pause when exiting the worker threads. The pause() was added in 2.2.1 to prevent segfault on pthread_cancel() on an exited, detached thread. Now worker threads are not detached and pthread_cancel() should work fine even after the thread exited. Reported by Boris Protopopov
-rw-r--r--ChangeLog8
-rw-r--r--lib/fuse_loop_mt.c2
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 297ac82..6171675 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-02-02 Miklos Szeredi <miklos@szeredi.hu>
+
+ * libfuse: In fuse_session_loop_mt() don't pause when exiting the
+ worker threads. The pause() was added in 2.2.1 to prevent
+ segfault on pthread_cancel() on an exited, detached thread. Now
+ worker threads are not detached and pthread_cancel() should work
+ fine even after the thread exited. Reported by Boris Protopopov
+
2011-01-31 Miklos Szeredi <miklos@szeredi.hu>
* In case of failure to add to /etc/mtab use same mountpoint for
diff --git a/lib/fuse_loop_mt.c b/lib/fuse_loop_mt.c
index a76713b..694f98c 100644
--- a/lib/fuse_loop_mt.c
+++ b/lib/fuse_loop_mt.c
@@ -133,8 +133,6 @@ static void *fuse_do_work(void *data)
}
sem_post(&mt->finish);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pause();
return NULL;
}