mergerfs/vendored/libfuse/lib
Antonio S. Musumeci a5043d801a libfuse: thread_pool/objpool/fuse_loop - safer memory and iteration
- ThreadPool::destroy used to iterate _threads directly while another
  thread could be adjusting the same vector. Snapshot the vector
  under the mutex and iterate the local copy for pthread_cancel /
  pthread_join.

- ObjPool::construct now returns NULL when the pooled allocator
  returns NULL instead of invoking placement-new on a null
  pointer. In destroy, compute to_node(obj) before running the
  destructor - the destructor may scrub bytes the to_node helper
  reads.

- In the async/sync workers in fuse_loop, msgbuf_alloc can return
  NULL under memory pressure. Fail the worker cleanly with a
  diagnostic rather than dereferencing. Also introduce a small
  _nproc() helper that treats hardware_concurrency()==0 as 1, so
  the downstream min/max arithmetic doesn't produce a zero thread
  count.
2026-04-18 01:00:32 -04:00
..
cpu.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
cpu.hpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
crc32b.cpp Convert vendored/libfuse C sources to C++17 2026-03-24 21:13:34 -04:00
crc32b.h Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
debug.cpp log: default debug log path to empty; skip set when empty 2026-04-18 00:59:08 -04:00
format.cpp Move fmtlib to vendored and upgrade to 12.1.0 2026-03-02 01:09:16 -05:00
fuse.cpp libfuse: harden fuse.cpp against NULL nodes; use lock guards; check allocations 2026-04-18 01:00:11 -04:00
fuse_cfg.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
fuse_dirents.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
fuse_i.hpp libfuse: remove userdata from init/destroy APIs; drop unused fuse_reply_ioctl_iov 2026-04-18 00:59:52 -04:00
fuse_loop.cpp libfuse: thread_pool/objpool/fuse_loop - safer memory and iteration 2026-04-18 01:00:32 -04:00
fuse_lowlevel.cpp libfuse: remove userdata from init/destroy APIs; drop unused fuse_reply_ioctl_iov 2026-04-18 00:59:52 -04:00
fuse_msgbuf.cpp More aggressive error handing with pagesize queries 2026-03-24 21:13:34 -04:00
fuse_opt.cpp Convert vendored/libfuse C sources to C++17 2026-03-24 21:13:34 -04:00
fuse_req.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
fuse_session.cpp libfuse: harden fuse.cpp against NULL nodes; use lock guards; check allocations 2026-04-18 01:00:11 -04:00
fuse_signals.cpp libfuse: use atomic fuse_session pointer in signal handler 2026-04-18 01:00:19 -04:00
helper.cpp Additional check for ENOTCONN on mount 2026-03-24 21:13:34 -04:00
lock.h Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
maintenance_thread.cpp Move maintainence thread func take u64 rather than int 2026-03-24 21:13:34 -04:00
mount.cpp Convert vendored/libfuse C sources to C++17 2026-03-24 21:13:34 -04:00
mount.hpp Convert vendored/libfuse C sources to C++17 2026-03-24 21:13:34 -04:00
mount_bsd.h Convert vendored/libfuse C sources to C++17 2026-03-24 21:13:34 -04:00
mount_generic.h Fallback to fusermount3 where available 2026-03-24 21:13:34 -04:00
mount_util.h replace raw C-strings with std::string in converted libfuse files 2026-03-24 21:13:34 -04:00
node.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
node.hpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
pin_threads.cpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
pin_threads.hpp Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
xalloc.hpp libfuse: harden fuse.cpp against NULL nodes; use lock guards; check allocations 2026-04-18 01:00:11 -04:00