I discovered there was only 1 place that needed fcntl changed to flock
to work, in db.c Several tests locally don't reveal any problems and my
database lock errors are gone.
*** db.c~ Mon May 20 05:53:39 1996
--- db.c Mon May 20 05:45:48 1996
***************
*** 62,70 ****
--- 62,76 ----
interlock with newer ones - and that happens as you change over. So instead
the BSDI os.h file defines USE_DBM_DIRFNO, which causes dbhdr.h to define a
macro that turns dbm_pagfno() into dbm_dirfno(). */
+
+ #if defined (__linux__)
+ while (flock(dbm_pagfno(dbm), LOCK_EX, &lock_data) < 0)
+ #else
while (fcntl(dbm_pagfno(dbm), F_SETLK, &lock_data) < 0)
+ #endif
+
{
if (lock_count++ > DB_LOCK_RETRIES)
{
log_write(LOG_MAIN, "Failed to get %s lock for %s\n",
--
Artificial Intelligence stands no chance against Natural Stupidity.
GAT d- -p+(--) c++++ l++ u++ t- m--- W--- !v
b+++ e* s-/+ n-(?) h++ f+g+ w+++ y*