Skip to content

Commit edea354

Browse files
authored
Merge pull request #2 from TimGroenen/master
Changed acquire to an iterative funtion
2 parents dc7b05f + c21e95d commit edea354

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/Semaphore.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,18 @@ public function acquire($sleep = null, $retries = null) {
4949
// We already have it
5050
return true;
5151
}
52-
$acquired = $this->acquire_fair_with_lock();
53-
if ($acquired) {
54-
return true;
55-
} else {
56-
if ($retries > 0 && $sleep > 0) {
57-
sleep($sleep);
58-
return $this->acquire($sleep, $retries - 1);
52+
53+
while ($sleep > 0 && $retries > 0) {
54+
$acquired = $this->acquire_fair_with_lock();
55+
56+
if ($acquired) {
57+
return true;
5958
}
60-
return false;
59+
60+
$retries -= 1;
61+
sleep($sleep);
6162
}
63+
return false;
6264
}
6365

6466
/**

0 commit comments

Comments
 (0)