Subj : src/sbbs3/userdat.c src/xpdev/filewrap.c filewrap.h To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Thu Dec 05 2024 17:00:15 https://gitlab.synchro.net/main/sbbs/-/commit/03b84df8570435f0e0e2c346 Modified Files: src/sbbs3/userdat.c src/xpdev/filewrap.c filewrap.h Log Message: Add/use xp_lockfile() to support blocking file range/region lock acquisition Under heavy loads, I've found periodic non-blocking lock attempts just aren't reliable enough: in particular, on Vertrauen, the guest user account record in the user.tab file gets read and written-to A LOT (updating stats), and under heavy loads (especially with hundreds of web client sessions), I'd get timeouts attempting to lock the guest record in the user.tab (after about a minute of periodic retries) - so let's just block "forever" to get the user record lock (or until signaled or notified of a deadlock). With this change, I've not had any user.tab lock errors or apparent deadlocks. Let the underlying OS/filesystem handle queuing and deadlock detection, when supported. lock() still behaves as before: non-blocking lock attempt. --- þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net .