![]() |
|
Just another Perl shrine | |
PerlMonks |
comment on |
( #3333=superdoc: print w/replies, xml ) | Need Help?? |
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! In reply to Re: Re: Proper use of flock
by Helter
|
|