'Register this socket to be closed. fire and forget'

def close(self):

    if self.closed:
        return
    IOWorker.close(self)
    try:
        self.socket.shutdown(socket.SHUT_RD)
    except Exception:
        pass
    self.on_close(self)
