private function dequeueNextWaitingSocket($uri)
{
$queueStruct = current($this->queuedSocketRequests[$uri]);
list($promisor, $uri, $options) = $queueStruct;
if ($socket = $this->checkoutExistingSocket($uri, $options)) {
array_shift($this->queuedSocketRequests[$uri]);
$promisor->succeed($socket);
return;
}
if ($this->allowsNewConnection($uri, $options)) {
array_shift($this->queuedSocketRequests[$uri]);
$this->initializeNewConnection($promisor, $uri, $options);
}
}