private function finalizeNewConnection(Deferred $promisor, $uri, $socket, $options)
{
if (--$this->pendingSockets[$uri] === 0) {
unset($this->pendingSockets[$uri]);
}
$socketId = (int) $socket;
$poolStruct = new SocketPoolStruct();
$poolStruct->id = $socketId;
$poolStruct->uri = $uri;
$poolStruct->resource = $socket;
$poolStruct->isAvailable = false;
$poolStruct->msIdleTimeout = $options[self::OP_MS_IDLE_TIMEOUT];
$this->sockets[$uri][$socketId] = $poolStruct;
$this->socketIdUriMap[$socketId] = $uri;
$promisor->succeed($poolStruct->resource);
if (empty($this->queuedSocketRequests[$uri])) {
unset($this->queuedSocketRequests[$uri]);
}
}