protected function assertHit($expected, Pool $pool, $key) { $this->assertEquals($expected, $pool->get($key)); $this->assertEquals($expected, $pool->getItem($key)->get()); $this->assertTrue($pool->getItem($key)->isHit()); $this->assertTrue($pool->hasItem($key)); }
public static function wrap($coroutine) { if ($coroutine instanceof \Generator) { $coKey = $coroutine->key(); $coValue = $coroutine->current(); if ($coKey && in_array($coKey, self::$_ioQueue)) { try { $client = \Pool::get($coKey, $coValue); if ($client) { $client->setCoroutine($coroutine); $coroutine->send($client); } else { Queue::push($coKey, $coroutine); } } catch (exception $e) { $coroutine->throw($e); } } else { if ($coValue instanceof \Coroutine\Base) { $coValue->setCoroutine($coroutine); } } } return $coroutine; }
/** * Resolve a files extended attributes * * @access public * * @param $retval file extended attributes */ public static function resolveAttributes(&$retval) { Log::in("query - resolveAtributes"); /* For printing via modxfs-getfattr for instance we need to * resolve things like user number to a name, template id to * a name, dates into strings etc. * We are only using select statements here, if a query fails * just leave the attribute alone and move on. */ $dbConn = Pool::get(); $prefix = Pool::getTableprefix(); foreach ($retval as $key => &$value) { switch ($key) { case 'editedon': case 'createdon': case 'pub_date': case 'unpub_date': case 'deletedon': case 'publishedon': $value = strftime("%G-%m-%j %H:%M:%S", $value); break; case 'parent': $sql = "SELECT pagetitle"; $sql .= " FROM `{$prefix}" . "site_content`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['pagetitle'] != "") { $value = $row['pagetitle']; } } break; case 'template': $sql = "SELECT templatename"; $sql .= " FROM `{$prefix}" . "site_templates`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['templatename'] != "") { $value = $row['templatename']; } } break; case 'editedby': case 'deletedby': case 'publishedby': case 'createdby': /* Only manager users here */ $sql = "SELECT username"; $sql .= " FROM `{$prefix}" . "manager_users`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['username'] != "") { $value = $row['username']; } } break; default: break; } } Pool::release($dbConn); Log::out("query - resolveAtributes"); }