docs: 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()