From: Scott Johnson <scottj75074@ya...> - 2011-02-21 02:50:15
I'm trying to port loggedfs to FreeBSD FUSE. I have it mostly working, except
the daemon never exits when killed. I've traced it to a call to read() (in
function fuse_kern_chan_receive() in the fusefs-libs port) that never returns,
despite a call to pthread_cancel() that should cancel that thread. Evidently in
Linux the read() returns EINTR after its thread is cancelled, but in FreeBSD
the read() never unblocks and hence the pthread_join() waits forever.
According to this pthread_cancel man page:
POSIX specifies that read() should be a cancellation point.
Any FreeBSD fuse authors around here?