aboutsummaryrefslogtreecommitdiff
path: root/lib/fuse_loop_mt.c
Commit message (Collapse)AuthorAge
* Make *_loop_mt() available in version 3.0 againGravatar Nikolaus Rath2017-09-19
| | | | | | The old versions of these symbols were defined with version tag FUSE_3.0, so this is what we have to use in the .symver directive.
* Don't use external symbol names in internal filesGravatar Nikolaus Rath2017-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fuse_session_loop_mt() and fuse_loop_mt() symbols are only visible when linking against the shared object. The code in lib/, however, is compiled *into* the shared object and should thus use the internal names of these functions. Surprisingly enough, the code still worked before - but only when link time optimization was disabled. Unfortunately, we still can't compile with LTO because it seems that enabling LTO somehow makes the tagged symbols vanish. Without lto, we have: $ nm lib/libfuse3.so | grep fuse_new 0000000000011070 T fuse_new_30 0000000000010a00 t fuse_new_31 0000000000011070 T fuse_new@FUSE_3.0 0000000000010a00 T fuse_new@@FUSE_3.1 and with LTO: $ nm lib/libfuse3.so | grep fuse_new 0000000000019a70 T fuse_new_30 0000000000019270 t fuse_new_31 See also issue #198.
* Add idle_threads mount option.Gravatar Joseph Dodge2017-08-24
|
* fuse_loop_mt(): on error, return errno rather than -1.Gravatar Nikolaus Rath2017-08-23
|
* Add support for more detailed error codes from main loopGravatar Nikolaus Rath2016-11-16
|
* Make -o clone_fd into a parameter of session_loop_mt().Gravatar Nikolaus Rath2016-10-13
| | | | | | This option really affects the behavior of the session loop, not the low-level interface. Therefore, it does not belong in the fuse_session object.
* Merge fuse_ll into fuse_session (part 3)Gravatar Nikolaus Rath2016-10-04
| | | | Replace se->f with se.
* Merge master fuse_chan into fuse_session.Gravatar Nikolaus Rath2016-10-03
| | | | | | | | | | | | | | | | | | This is a code simplification patch. - It confines most of the implementation channel implementation into fuse_loop_mt (which is its only user). - It makes it more obvious in the code that channels are only ever used when using -o clone_fd and multi-threaded main loop. - It simplies the definition of both struct fuse_session and struct fuse_chan. - Theoretically it should result in (minuscule) performance improvements when not using -o clone_fd. - Overall, it removes a lot more lines of source code than it adds :-).
* Extended per-file comments.Gravatar Nikolaus Rath2016-10-02
| | | | | This should make more clear what file contains code for what purpose.
* Turned fuse_session_{process,receive}_buf into wrapper functions.Gravatar Nikolaus Rath2016-10-02
|
* Inlined fuse_chan_fdGravatar Nikolaus Rath2016-03-29
|
* libfuse: add "clone_fd" optionGravatar Miklos Szeredi2015-05-18
| | | | | This creates a separate device file descriptor for each processing thread, which might improve performance.
* libfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pcGravatar Miklos Szeredi2013-07-24
| | | | add AC_SYS_LARGEFILE to your configure.ac instead.
* Merge https://github.com/qknight/fuse-fuseGravatar Miklos Szeredi2013-07-17
|\
* | libfuse: remove fuse_chan_bufsize()Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | Remove fuse_chan_bufsize() from the lowlevel API. fuse_session_receive_buf() is now responsible for allocating memory for the buffer.
* | libfuse: remove fuse_chan_(send|receive)Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | Move the fuse_chan_ops.send and .receive implementations to fuse_lowlevel.c. The abstraction wasn't actually useful and made the the splice implementation more difficult. Remove fuse_chan_ops.send and fuse_chan_ops.receive.
* | libfuse: replace fuse_session_next_chanGravatar Miklos Szeredi2013-06-21
| | | | | | | | | | Replace fuse_session_next_chan() with fuse_session_chan(), as multiple channels per session were never actually supported and probably never will.
| * - added a doxygen main pageGravatar Joachim Schiele2013-06-20
|/ | | | | | - modified all examples to be included in doxygen - modified the API documentation to have more details - added the 490px_FUSE_structure.svg.png (c) wikipedia
* libfuse: fix thread cancel raceGravatar Miklos Szeredi2013-03-19
| | | | | | | | Exiting a worker my race with cancelling that same worker. This caused a segmenation fault. Reported and tested by Anatol Pomozov
* Remove unnecessary mutex unlock at the end of multithreaded event loopGravatar Miklos Szeredi2012-01-02
|
* add "remember" optionGravatar therealneworld@gmail.com2011-06-02
| | | | | This works similar to "noforget" except that eventually the node will be allowed to expire from the cache.
* Allow batching of forget requestsGravatar Miklos Szeredi2011-05-19
| | | | | This allows forget requests to be processed faster and doesn't require a modification to fuse filesystems. Reported by Terje Malmedal
* libfuse: fuse_session_loop_mt() shouldn't pause when exiting worker threadsGravatar Miklos Szeredi2011-02-02
| | | | | | | | 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
* libfuse: support zero copy writes in lowlevel interfaceGravatar Miklos Szeredi2010-11-08
| | | | | | | | | | Add new ->write_buf() method to low level interface. This allows passig a generic buffer, either containing a memory buffer or a file descriptor. This allows implementing zero copy writes. Add fuse_session_receive_buf() and fuse_session_process_buf() which may be used in event loop implementations to replace fuse_chan_recv() and fuse_session_process() respectively.
* Add queuing on contention to per-node lock algorithm...Gravatar Miklos Szeredi2008-03-07
|
* If the "FUSE_THREAD_STACK" environment is set, initialize the stack size of ↵Gravatar Miklos Szeredi2008-02-08
| | | | threads by this value
* change indentingGravatar Miklos Szeredi2007-12-12
|
* Clarify licence version to be "LGPLv2" for the libraryGravatar Miklos Szeredi2007-10-16
|
* lib: don't create new thread for each FORGET request...Gravatar Miklos Szeredi2007-05-29
|
* lib: fix memory leak on thread creation failure...Gravatar Miklos Szeredi2007-05-24
|
* In multithreaded loop, use a semaphore instead of SIGHUP...Gravatar Miklos Szeredi2007-04-26
|
* update copyright datesGravatar Miklos Szeredi2007-04-25
|
* interrupt supportGravatar Miklos Szeredi2006-09-07
|
* fixGravatar Miklos Szeredi2006-09-03
|
* fixGravatar Miklos Szeredi2006-05-08
|
* fixGravatar Miklos Szeredi2006-03-17
|
* fixGravatar Miklos Szeredi2006-03-01
|
* fixGravatar Miklos Szeredi2006-01-06
|
* fixGravatar Miklos Szeredi2005-12-06
|
* fixGravatar Miklos Szeredi2005-11-29
|
* *** empty log message ***Gravatar Miklos Szeredi2005-11-27
|
* fixGravatar Miklos Szeredi2005-11-21
|
* fixGravatar Miklos Szeredi2005-09-28
|
* fixGravatar Miklos Szeredi2005-09-14
|
* fixGravatar Miklos Szeredi2005-09-12
|
* fixGravatar Miklos Szeredi2005-08-15
|
* cleanupGravatar Miklos Szeredi2005-08-14