Fixing the race condition in shlock.c
julien at trigofacile.com
Tue Nov 18 15:14:37 UTC 2008
> In one case I did use shlock in combination with minicom IIRC, which
> 'automagically' detects a binary lock if the file is sized 4 bytes.
> Meaning pids 100 to 999 did not work very well...
I have added that in the comment (with "%10ld\n", (long) pid).
> Actually I think this comment was added in response to my initial bug
> report. So yes this should fix that race condition.
Thanks for the pointer.
> One additional test you might want to do is adding a sleep() call
> before the unlink to verify if the algorithm is really correct. I have
> been using this for the last 6 years and never heard of this problem
> happening again.
The algorithm works fine with sleep(1) and sleep(3).
I have just committed your patch. Thanks again. You're also mentioned in
the CONTRIBUTORS file and the shlock man page:
« Celui qui sait qu'il ne sait pas, éduque-le.
Celui qui sait qu'il sait, écoute-le.
Celui qui ne sait pas qu'il sait, éveille-le.
Celui qui ne sait pas qu'il ne sait pas, fuis-le. » (proverbe chinois)
More information about the inn-workers