Renaming a file within a directory should be a one-step (atomic) process (
rename invokes
a system an OS-level system library call - but as such, there might be site-specific issues you need to watch out for).
This approach relies on having some reliable constraint on the names of files being dropped in, so your processes can look for a file name that matches the constraint, and rename it to not match the constraint.
Still if you can rely on some renaming pattern that will surely not collide or be confused with incoming file names, then it should be possible to rule out race conditions. If two processes both spot the same new file, only one of them can succeed in renaming it (naturally, each process should use its own distinctive pattern for renaming files).
The process that fails when it tries to rename can just go back to looking for another new file.
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.