'Get or create a SocketInfo. Can raise ConnectionFailure.'

def _get_socket_no_auth(self):

    if (self.pid != os.getpid()):
        self.reset()
    if (not self._socket_semaphore.acquire(True, self.opts.wait_queue_timeout)):
        self._raise_wait_queue_timeout()
    with self.lock:
        self.active_sockets += 1
    try:
        try:
            with self.lock:
                sock_info = self.sockets.pop()
        except KeyError:
            sock_info = self.connect()
        else:
            sock_info = self._check(sock_info)
    except:
        self._socket_semaphore.release()
        with self.lock:
            self.active_sockets -= 1
        raise
    return sock_info
