From: Allen P. <pul...@co...> - 2008-02-12 20:45:21
|
> As I am considering writing something whose actions can take > a long time (and block), I am curious to know how this would > work if two processes (for example) each attempt to perform > different actions. Will they occur in parallel? In general, they happen in parallel. But sometimes FUSE itself (at least the high level interface) acquires a mutex, forcing two operations to occur in sequence. It is not straightforward to figure out which operations will block which other operations, and which will occur in parallel. > A more strange question: suppose I spawn threads before > calling fuse_main -- can the functions such as getattr, etc. > communicate with the other threads? Yes. FYI, threads spawned before calling fuse_main are killed when fuse_main calls the daemon() system function. So you need to spawn threads in your file system's init() function which fuse_main calls after calling daemon(). |