diff options
author | Mark Jason Dominus (陶敏修) <mjd@plover.com> | 2014-11-30 14:34:46 -0500 |
---|---|---|
committer | Amitai Schlair <schmonz-web-ikiwiki@schmonz.com> | 2014-12-02 10:37:09 -0500 |
commit | e2354943d7bca4e52fce923ff7709b7f84bd76e1 (patch) | |
tree | e1f2bab50d22228c987b62f4e8f3053323e4aca9 | |
parent | cfbf8f07252b13143412413e753c3849efa5153c (diff) | |
download | ikiwiki-e2354943d7bca4e52fce923ff7709b7f84bd76e1.tar ikiwiki-e2354943d7bca4e52fce923ff7709b7f84bd76e1.tar.gz |
in debug mode, issue a warning before waiting for a lock
-rw-r--r-- | IkiWiki.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 03f058ef7..a8e2865be 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -5,6 +5,7 @@ package IkiWiki; use warnings; use strict; use Encode; +use Fcntl q{:flock}; use URI::Escape q{uri_escape_utf8}; use POSIX (); use Storable; @@ -1813,8 +1814,11 @@ sub lockwiki () { } open($wikilock, '>', "$config{wikistatedir}/lockfile") || error ("cannot write to $config{wikistatedir}/lockfile: $!"); - if (! flock($wikilock, 2)) { # LOCK_EX - error("failed to get lock"); + if (! flock($wikilock, LOCK_EX | LOCK_NB)) { + debug("failed to get lock; waiting..."); + if (! flock($wikilock, LOCK_EX)) { + error("failed to get lock"); + } } return 1; } |