From 222b01f5169f1c7e69762e0e8904c24f78f71882 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 28 Jul 2010 11:52:48 +0200 Subject: update to MediaWiki 1.16.0 --- includes/PoolCounter.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 includes/PoolCounter.php (limited to 'includes/PoolCounter.php') diff --git a/includes/PoolCounter.php b/includes/PoolCounter.php new file mode 100644 index 00000000..2564fbc6 --- /dev/null +++ b/includes/PoolCounter.php @@ -0,0 +1,64 @@ +acquire(); + if ( !$status->isOK() ) { + return $status; + } + if ( !empty( $status->value['overload'] ) ) { + # Overloaded. Try a dirty cache entry. + if ( $dirtyCallback ) { + if ( call_user_func( $dirtyCallback ) ) { + $this->release(); + return Status::newGood(); + } + } + + # Wait for a thread + $status = $this->wait(); + if ( !$status->isOK() ) { + $this->release(); + return $status; + } + } + # Call the main callback + call_user_func( $mainCallback ); + return $this->release(); + } +} + +class PoolCounter_Stub extends PoolCounter { + public function acquire() { + return Status::newGood(); + } + + public function release() { + return Status::newGood(); + } + + public function wait() { + return Status::newGood(); + } + + public function executeProtected( $mainCallback, $dirtyCallback = false ) { + call_user_func( $mainCallback ); + return Status::newGood(); + } +} + + -- cgit v1.2.3-54-g00ecf