Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: pesky lockfile stays locked

by TilRMan (Friar)
on May 17, 2004 at 13:18 UTC ( #353954=note: print w/replies, xml ) Need Help??

in reply to pesky lockfile stays locked

Don't you need to unlink() the lockfile when you're done? And why not just flock() the database file itself instead?

Update: Don't mind me, I was confusing O_CREAT with O_EXCL.

Replies are listed 'Best First'.
Re: Re: pesky lockfile stays locked
by tilly (Archbishop) on May 17, 2004 at 18:49 UTC
    Do not rely on locking database files if you're relying on an external library to manipulate them.

    It used to be very common advice to lock database files - it was even in the Cookbook as a recipe. The ultimate source of this advice seems to have been Berkeley DB documentation circa version 1.65.

    However since then at least some dbm applications (Berkely DB among them) in multi-user situations will sometimes close and then re-open the database behind the scenes. Because of how flock works, any close to the file, even if you have another handle to that file open (such as the one holding a lock), will lose your flock. Then you're in the worst of all possible worlds. You don't actually have a lock, but you think that you do.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://353954]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (2)
As of 2018-02-24 01:14 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (310 votes). Check out past polls.