def close(self):
        '''
        Cleanly shutdown the router socket
        '''
        if self._closing:
            return
        log.info('MWorkerQueue under PID %s is closing', os.getpid())
        self._closing = True
        # pylint: disable=E0203
        if getattr(self, '_monitor', None) is not None:
            self._monitor.stop()
            self._monitor = None
        if getattr(self, '_w_monitor', None) is not None:
            self._w_monitor.stop()
            self._w_monitor = None
        if hasattr(self, 'clients') and self.clients.closed is False:
            self.clients.close()
        if hasattr(self, 'workers') and self.workers.closed is False:
            self.workers.close()
        if hasattr(self, 'stream'):
            self.stream.close()
        if hasattr(self, '_socket') and self._socket.closed is False:
            self._socket.close()
        if hasattr(self, 'context') and self.context.closed is False:
            self.context.term()
def close ( self ) : if self . _closing : return log . info ( 'MWorkerQueue under PID %s is closing' , os . getpid ( ) ) self . _closing = True if getattr ( self , '_monitor' , None ) is not None : self . _monitor . stop ( ) self . _monitor = None if getattr ( self , '_w_monitor' , None ) is not None : self . _w_monitor . stop ( ) self . _w_monitor = None if hasattr ( self , 'clients' ) and self . clients . closed is False : self . clients . close ( ) if hasattr ( self , 'workers' ) and self . workers . closed is False : self . workers . close ( ) if hasattr ( self , 'stream' ) : self . stream . close ( ) if hasattr ( self , '_socket' ) and self . _socket . closed is False : self . _socket . close ( ) if hasattr ( self , 'context' ) and self . context . closed is False : self . context . term ( )
Cleanly shutdown the router socket