aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_loop_mt.c
AgeCommit message (Collapse)AuthorLines
2021-04-12Remove unused fuse_worker bufsize (#590)Hookey-1/+0
Not used since https://github.com/libfuse/libfuse/commit/561d7054d856eea6c2d634093546d6af773dada9
2020-10-29remove fuse_mutex_initRosen Penev-2/+2
This seems to have been added before 2006 to fix a uclibc bug. It doesn't seem to be the case anymore so just get rid of it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-11Implement GCC 10 style symbol versioning (#545)Tom Callaway-2/+2
2019-09-04Introduce callback for loggingStefan Hajnoczi-7/+7
Introduce an API for custom log handler functions. This allows libfuse applications to send messages to syslog(3) or other logging systems. See include/fuse_log.h for details. Convert libfuse from fprintf(stderr, ...) to log_fuse(level, ...). Most messages are error messages with FUSE_LOG_ERR log level. There are also some debug messages which now use the FUSE_LOG_DEBUG log level. Note that lib/mount_util.c is used by both libfuse and fusermount3. Since fusermount3 does not link against libfuse, we cannot call fuse_log() from lib/mount_util.c. This file will continue to use fprintf(stderr, ...) until someone figures out how to split it up. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2018-11-06Revert "Do not include struct fuse_buf in struct fuse_worker"Nikolaus Rath-9/+13
This reverts commit 161983e2416bc6e26bbbe89664fff62c48c70858, because this causes resource leaks when threads are terminated by pthread_cancel(). Fixes: #313.
2018-09-17Do not include struct fuse_buf in struct fuse_workerNikolaus Rath-10/+9
This is only used in fuse_do_work(), so we can put it on the stack.
2017-09-19Make *_loop_mt() available in version 3.0 againNikolaus Rath-1/+1
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.
2017-09-19Don't use external symbol names in internal filesNikolaus Rath-1/+0
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.
2017-08-24Add idle_threads mount option.Joseph Dodge-3/+17
2017-08-23fuse_loop_mt(): on error, return errno rather than -1.Nikolaus Rath-1/+1
2016-11-16Add support for more detailed error codes from main loopNikolaus Rath-0/+2
2016-10-13Make -o clone_fd into a parameter of session_loop_mt().Nikolaus Rath-3/+5
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.
2016-10-04Merge fuse_ll into fuse_session (part 3)Nikolaus Rath-2/+2
Replace se->f with se.
2016-10-03Merge master fuse_chan into fuse_session.Nikolaus Rath-11/+51
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 :-).
2016-10-02Extended per-file comments.Nikolaus Rath-0/+2
This should make more clear what file contains code for what purpose.
2016-10-02Turned fuse_session_{process,receive}_buf into wrapper functions.Nikolaus Rath-2/+2
2016-03-29Inlined fuse_chan_fdNikolaus Rath-1/+1
2015-05-18libfuse: add "clone_fd" optionMiklos Szeredi-2/+53
This creates a separate device file descriptor for each processing thread, which might improve performance.
2013-07-24libfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pcMiklos Szeredi-0/+1
add AC_SYS_LARGEFILE to your configure.ac instead.
2013-07-17Merge https://github.com/qknight/fuse-fuseMiklos Szeredi-0/+0
2013-06-21libfuse: remove fuse_chan_bufsize()Miklos Szeredi-19/+8
Remove fuse_chan_bufsize() from the lowlevel API. fuse_session_receive_buf() is now responsible for allocating memory for the buffer.
2013-06-21libfuse: remove fuse_chan_(send|receive)Miklos Szeredi-3/+2
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.
2013-06-21libfuse: replace fuse_session_next_chanMiklos Szeredi-1/+1
Replace fuse_session_next_chan() with fuse_session_chan(), as multiple channels per session were never actually supported and probably never will.
2013-06-20- added a doxygen main pageJoachim Schiele-0/+0
- 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
2013-03-19libfuse: fix thread cancel raceMiklos Szeredi-0/+2
Exiting a worker my race with cancelling that same worker. This caused a segmenation fault. Reported and tested by Anatol Pomozov
2012-01-02Remove unnecessary mutex unlock at the end of multithreaded event loopMiklos Szeredi-1/+0
2011-06-02add "remember" optiontherealneworld@gmail.com-19/+32
This works similar to "noforget" except that eventually the node will be allowed to expire from the cache.
2011-05-19Allow batching of forget requestsMiklos Szeredi-3/+7
This allows forget requests to be processed faster and doesn't require a modification to fuse filesystems. Reported by Terje Malmedal
2011-02-02libfuse: fuse_session_loop_mt() shouldn't pause when exiting worker threadsMiklos Szeredi-2/+0
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
2010-11-08libfuse: support zero copy writes in lowlevel interfaceMiklos Szeredi-3/+8
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.
2008-03-07Add queuing on contention to per-node lock algorithm...Miklos Szeredi-1/+6
2008-02-08If the "FUSE_THREAD_STACK" environment is set, initialize the stack size of ↵Miklos Szeredi-1/+13
threads by this value
2007-12-12change indentingMiklos Szeredi-173/+174
2007-10-16Clarify licence version to be "LGPLv2" for the libraryMiklos Szeredi-1/+1
2007-05-29lib: don't create new thread for each FORGET request...Miklos Szeredi-2/+14
2007-05-24lib: fix memory leak on thread creation failure...Miklos Szeredi-0/+2
2007-04-26In multithreaded loop, use a semaphore instead of SIGHUP...Miklos Szeredi-2/+7
2007-04-25update copyright datesMiklos Szeredi-1/+1
2006-09-07interrupt supportMiklos Szeredi-10/+13
2006-09-03fixMiklos Szeredi-116/+116
2006-05-08fixMiklos Szeredi-0/+1
2006-03-17fixMiklos Szeredi-18/+30
2006-03-01fixMiklos Szeredi-5/+7
2006-01-06fixMiklos Szeredi-1/+1
2005-12-06fixMiklos Szeredi-1/+1
2005-11-29fixMiklos Szeredi-3/+5
2005-11-27*** empty log message ***Miklos Szeredi-1/+13
2005-11-21fixMiklos Szeredi-2/+9
2005-09-28fixMiklos Szeredi-1/+1
2005-09-14fixMiklos Szeredi-0/+2