aboutsummaryrefslogtreecommitdiffstats
path: root/includes/filerepo/backend/lockmanager
diff options
context:
space:
mode:
authorawjrichards <arichards@wikimedia.org>2012-06-05 22:58:54 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2012-06-05 22:58:54 +0000
commitc29fd59775f597847a57f598a76de48c63952243 (patch)
tree0cfd165d9f6829d1b66481b21957e54b7d255ce2 /includes/filerepo/backend/lockmanager
parentee0d3d330f76b97c451c168dc9b052ee84609b5b (diff)
downloadmediawikicore-c29fd59775f597847a57f598a76de48c63952243.tar.gz
mediawikicore-c29fd59775f597847a57f598a76de48c63952243.zip
Big oops - merged to wrong branch.
Revert "Revert to arbitrarily old point before initial remote branch creation to help clean up" This reverts commit ee0d3d330f76b97c451c168dc9b052ee84609b5b
Diffstat (limited to 'includes/filerepo/backend/lockmanager')
-rw-r--r--includes/filerepo/backend/lockmanager/FSLockManager.php12
1 files changed, 8 insertions, 4 deletions
diff --git a/includes/filerepo/backend/lockmanager/FSLockManager.php b/includes/filerepo/backend/lockmanager/FSLockManager.php
index 4f3b9596ec18..2b727a8fd3ea 100644
--- a/includes/filerepo/backend/lockmanager/FSLockManager.php
+++ b/includes/filerepo/backend/lockmanager/FSLockManager.php
@@ -239,11 +239,15 @@ class FSLockManager extends LockManager {
return "{$this->lockDir}/{$hash}.lock";
}
+ /**
+ * Make sure remaining locks get cleared for sanity
+ */
function __destruct() {
- // Make sure remaining locks get cleared for sanity
- foreach ( $this->locksHeld as $path => $locks ) {
- $this->doSingleUnlock( $path, self::LOCK_EX );
- $this->doSingleUnlock( $path, self::LOCK_SH );
+ while ( count( $this->locksHeld ) ) {
+ foreach ( $this->locksHeld as $path => $locks ) {
+ $this->doSingleUnlock( $path, self::LOCK_EX );
+ $this->doSingleUnlock( $path, self::LOCK_SH );
+ }
}
}
}