https://gitlab.synchro.net/sbbs/sbbs/-/commit/f615f2e3ba27c342774c6eb5
Modified Files:
src/build/Common.gmake
Log Message:
We must explicitly set _FILE_OFFSET_BITS=64 to use Linux OFD locksThe Linux lock() implementation in xpdev/filewrap.c requires that_FILE_OFFSET_BITS is set
to 64 or else OFD (sane) locks are notused on Linux, defaulting back to the crazy per-process file regionlocking of Linux of old. This was done in this commit:
http://cvs.synchro.net/commitlog.ssjs?99999#39639because:https://patchwork.kernel.org/patch/9289177/but on 64-bit Linux, large file support is assumed and you don'tactually need to define _FILE_OFFFSET_BITS, we're peforming thischeck for 32-bit Linuxes. Perhaps a check to see if sizeof(off_t)== 8 would have been better. However, this change enables OFDLocks for *all* flavors of Linux (not just 64-bit) - so that'sbetter.Why do we care? Because using region locks on the same file ina multi-threaded program doesn't really work right on Linux withoutusing OFD Locks. I saw this problem with receiving multiplesimultaneous emails in the mailserver and getting smb_locksmbhdr()errors/failures when trying to save the message data or headersof the one or more messages every time GitLab would send emailout to those whoe have opted-in to received email notificationsupon gitlab.synchro.net activity.
--- SBBSecho 3.11-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)