summaryrefslogtreecommitdiff
path: root/lib/iomaster.php
diff options
context:
space:
mode:
authorCraig Andrews <candrews@integralblue.com>2010-01-23 01:03:41 -0500
committerCraig Andrews <candrews@integralblue.com>2010-01-23 01:03:41 -0500
commit23c0d663d63c49183494ebb049160af633a2d2ec (patch)
tree91b93d4c73d5af935e4629dd09ea3800713d76c4 /lib/iomaster.php
parent845f051c2f85248ef85d0a34f032792ca83f04a4 (diff)
Allow for instances as well as class names to be passed as queue handlers and iomanagers.
Diffstat (limited to 'lib/iomaster.php')
-rw-r--r--lib/iomaster.php10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/iomaster.php b/lib/iomaster.php
index 004e92b3e..29bd677bd 100644
--- a/lib/iomaster.php
+++ b/lib/iomaster.php
@@ -102,7 +102,7 @@ abstract class IoMaster
*/
protected function instantiate($class)
{
- if (isset($this->singletons[$class])) {
+ if (is_string($class) && isset($this->singletons[$class])) {
// Already instantiated a multi-site-capable handler.
// Just let it know it should listen to this site too!
$this->singletons[$class]->addSite(common_config('site', 'server'));
@@ -129,7 +129,11 @@ abstract class IoMaster
protected function getManager($class)
{
- return call_user_func(array($class, 'get'));
+ if(is_object($class)){
+ return $class;
+ } else {
+ return call_user_func(array($class, 'get'));
+ }
}
/**
@@ -347,7 +351,7 @@ abstract class IoMaster
* for per-queue and per-site records.
*
* @param string $key counter name
- * @param array $owners list of owner keys like 'queue:jabber' or 'site:stat01'
+ * @param array $owners list of owner keys like 'queue:xmpp' or 'site:stat01'
*/
public function stats($key, $owners=array())
{