def METHOD_NAME(self, content, timeout, debug_cb=lambda: "", quiet=False):
    timed_socket = self.get_socket()
    try:
        timed_socket.socket.send(content)
        if timed_socket.socket.poll(timeout=timeout * 1000) > 0:
            pb = timed_socket.socket.recv()
            return pb
        else:
            if not quiet:
                self._logger.error('request on %s failed: %s', self._zmq_socket, debug_cb())
            raise DeadSocketException(self.name, self._zmq_socket)
    except DeadSocketException as e:
        self.close_socket(timed_socket.socket)
        raise e
    except:
        self.close_socket(timed_socket.socket)
        self._logger.exception("")
    finally:
        if not timed_socket.socket.closed:
            now = time.time()
            if now - timed_socket.t >= self._ttl:
                self.close_socket(timed_socket.socket)
            else:
                with self._semaphore:
                    self._sockets.add(timed_socket)