On Thu, 19 Jun 1997, richard welty wrote:
> ok, exactly what do i have to do to get gdbm working with
> exim?
(1) The easy way is to wait for the next release. I just completed the
necessary work last week. The next release won't be till August or
September.
(2) The not quite so easy way is to wait for the next testing release,
which is likely to be in the next week or so. This will have only
sketchy documentation.
(3) The hacking way is to cut out the locking code in the db.c module
because gdbm does its own locking. However, you need also to put a
sleep/retry loop round the open call because gdbm gives EAGAIN when it
finds its file locked. I suppose I could send you the code from the next
release if you are desperate.
Other observations:
. It was reported here that if you recompile gdbm to use lockf instead
of flock, it all works with the current code.
> i observed that 1.7.3 will use flock by default on linux,
> and i manually removed the #define from the .h file after
> running the configuration program.
Perhaps something didn't get recompiled?
. I did some very crude timing tests with ndbm, gdbm, db 1.85 and db 2.1
and gdbm came off rather badly (db 1.85 seemed best).
. The next release of Exim uses a blocking call to get the lock when it
can, which is probably better for performance. However, because gdbm
does its own locking, Exim has to use a sleep/retry loop for it.
Philip
--
Philip Hazel University Computing Service,
ph10@??? New Museums Site, Cambridge CB2 3QG,
P.Hazel@??? England. Phone: +44 1223 334714