mergerfs/vendored
Antonio S. Musumeci 26c10d8a2e fix hill-climb monitor expected_count after shrink
After a successful _remove_thread_scaling_locked, the monitor set
expected_count via thread_count(), which returns the pre-shrink
count because the removal is deferred (only _remove_count is
incremented; the actual _threads erase happens asynchronously when
a worker claims the removal).  This caused two problems:

1. On the next cycle, the deferred removal makes thread_count()
   return count-1, which differs from expected_count (count),
   triggering the external-scaling-interference detector and
   wasting the cycle.

2. If the worker hasn't exited yet, thread_count() still equals
   expected_count, so the monitor evaluates throughput with the
   pre-shrink thread count still in effect, potentially reversing
   direction before the shrink's effect is measurable.

Fix: compute expected_count arithmetically (count-1 for shrink,
count+1 for grow) using the authoritative pre-operation count
read under _scaling_mutex, reflecting the intended outcome rather
than the racy current state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 22:21:20 -04:00
..
acutest Update vendored/acutest to latest master 2026-03-02 01:09:16 -05:00
boost Update vendored/boost to 1.90.0 2026-03-02 01:09:16 -05:00
CLI11 Update vendored/CLI11 to v2.6.2 2026-03-02 01:09:16 -05:00
fmt Move fmtlib to vendored and upgrade to 12.1.0 2026-03-02 01:09:16 -05:00
khash Move 3rd party libraries to "vendored" directory 2026-03-02 01:09:16 -05:00
libfuse fix hill-climb monitor expected_count after shrink 2026-04-10 22:21:20 -04:00
nonstd Update vendored/nonstd to latest and fix API usage 2026-03-02 01:09:16 -05:00
rapidhash Update vendored/rapidhash to v3 2026-03-02 01:09:16 -05:00
scope_guard Move scope_guard to vendored/ 2026-03-24 21:13:34 -04:00
subprocess Update vendored/subprocess to v2.5 2026-03-02 01:09:16 -05:00