Yeah, there is a race condition there but in that race if another process grabs the file wouldn't it then have the lock, putting the other one into wait mode? Personally I'd avoid the LOCK_SH and just go for LOCK_EX, write what you need and release (LOCK_UN). You're talking a millisecond of time really.
I once wanted to test such a thing so I created a quick module that was called by a script to lock, and release a DB database. I then proceeced to run about 6 copies of my script at once. They went crazy locking and unlocking and only had to wait for lock every few hundred goes, and even then it was only for a fraction of a second. I was all rather impressed at the time seeing 6 copies trying to grab it a few hundred times a second. Anyway, the moral is ... well you get the gist.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.