summaryrefslogtreecommitdiff
path: root/inc/subscription.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/subscription.php')
-rw-r--r--inc/subscription.php19
1 files changed, 10 insertions, 9 deletions
diff --git a/inc/subscription.php b/inc/subscription.php
index 1b5476553..8e3a99a8f 100644
--- a/inc/subscription.php
+++ b/inc/subscription.php
@@ -50,18 +50,19 @@ function subscription_lock_filename ($id){
}
function subscription_lock($id) {
- // FIXME merge this with the indexer lock generation, abstract out
global $conf;
$lock = subscription_lock_filename($id);
- while(!@mkdir($lock,$conf['dmode'])){
- usleep(50);
- if(time()-@filemtime($lock) > 60*5){
- // looks like a stale lock - remove it
- @rmdir($lock);
- }else{
- return false;
- }
+
+ if (is_dir($lock) && time()-@filemtime($lock) > 60*5) {
+ // looks like a stale lock - remove it
+ @rmdir($lock);
}
+
+ // try creating the lock directory
+ if (!@mkdir($lock,$conf['dmode'])) {
+ return false;
+ }
+
if($conf['dperm']) chmod($lock, $conf['dperm']);
return true;
}