def close(self):
     self.log_.d('close started')
     self.peerLock_.acquire()
     for listener in self.listeners_:
         listener.close()
     self.peerLock_.release()
     self.waitForListenersToClose()
     NetworkThread.close(self)
     self.log_.d('close finished')