X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?p=bin.git;a=blobdiff_plain;f=bsmtp-pull;h=600763d58e4540b7cd1c6f2ee912aea9fbd3cbd1;hp=5c95f92e4c067b2e1a149b2487f8b595c9494056;hb=a542a487167aada858784adf9f5e1d5884da3d18;hpb=9c97e81846154236ffbc7e9ebe428735309964ce diff --git a/bsmtp-pull b/bsmtp-pull index 5c95f92..600763d 100755 --- a/bsmtp-pull +++ b/bsmtp-pull @@ -19,6 +19,8 @@ HOST="$1" # By default, lockfile-create gives up after three minutes, so don't cron # this any more frequently than that without supplying a --retry argument. lockfile-create "$HOST" +# Race condition pointed out by pjb: this doesn't guarantee that the lock is +# held before the critical section starts. lockfile-touch "$HOST" & TOUCH="$!" trap 'kill "$TOUCH"; lockfile-remove "$HOST"' EXIT ERR HUP INT QUIT TERM