Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Re: Proper use of flock

by Helter (Chaplain)
on Oct 30, 2002 at 15:00 UTC ( #209090=note: print w/replies, xml ) Need Help??

in reply to Re: Proper use of flock
in thread Proper use of flock

I agree with everything Aristotle said, I just wanted to point something out that may not be obvious.

Where it says "If you want to write to a file, do"...

Make sure you do NOT open the file with a single >, or in truncate mode.

The lock is, as explained in the docs, only an advisory lock, which means if some code does not check the lock there are no restrictions on it going in and messing with the file.

So while a good citizen your code locks a file and is doing some reading, a bad citizen could open, truncate, the file if they never check the lock, and your code will be out of luck.

And not mentioned is locking multiple files, a common mistake is made in the order you lock files. The rule is, all code should lock resources in the same order. And when you release locks you should do in the inverse order. If you have some code that locks A, B, C, and other code that locks C, A you are going to eventually hit deadlock.

Can you tell I made some mistakes in the past ;-)

Hope this helps!

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://209090]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2023-02-06 10:19 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (33 votes). Check out past polls.