예제 #1
0
 def __init__(self):
   super(MasterRunnable, self).__init__()
   self.runnables = LockedList()
   self.pausables = LockedList()
   self.joinables = LockedList()
예제 #2
0
class MasterRunnable(Runnable):
  def __init__(self):
    super(MasterRunnable, self).__init__()
    self.runnables = LockedList()
    self.pausables = LockedList()
    self.joinables = LockedList()

  def add_slave(self, *slaves):
    self.runnables.add(*slaves)
    self.pausables.add(*slaves)
    self.joinables.add(*slaves)

  def add_pause_only_slave(self, *slaves):
    self.pausables.add(*slaves)
    self.joinables.add(*slaves)

  def remove_slave(self, *slaves):
    self.runnables.remove(*slaves)
    self.pausables.remove(*slaves)
    self.joinables.remove(*slaves)

  def add_mutual_pause_slave(self, *clients):
    self.add_slave(*clients)
    for c in clients:
      if c:
        c.pausables.add(self)

  def run(self):
    was_running = self.is_running
    super(MasterRunnable, self).run()
    self.runnables.foreach('run')

  def pause(self):
    try:
      if self.is_running:
        self.is_running = False
        self.pausables.foreach('pause')
        self.is_running = True
      super(MasterRunnable, self).pause()
    except:
      if not Quit.QUITTING:
        raise

  def begin(self):
    super(MasterRunnable, self).begin()
    self.runnables.foreach('begin')

  def unload(self):
    super(MasterRunnable, self).unload()
    self.runnables.foreach('unload')
예제 #3
0
 def __init__(self):
     super(MasterRunnable, self).__init__()
     self.runnables = LockedList()
     self.pausables = LockedList()
     self.joinables = LockedList()
예제 #4
0
class MasterRunnable(Runnable):
  """A Runnable that controls a list of other runnables.
  """
  def __init__(self):
    super(MasterRunnable, self).__init__()
    self.runnables = LockedList()
    self.pausables = LockedList()
    self.joinables = LockedList()

  def add_slave(self, *slaves):
    """Adds one or more slaves - Runnables that run, pause and join
    when this one does."""
    self.runnables.add(*slaves)
    self.pausables.add(*slaves)
    self.joinables.add(*slaves)

  def add_pause_only_slave(self, *slaves):
    self.pausables.add(*slaves)
    self.joinables.add(*slaves)

  def remove_slave(self, *slaves):
    self.runnables.remove(*slaves)
    self.pausables.remove(*slaves)
    self.joinables.remove(*slaves)

  def add_mutual_pause_slave(self, *clients):
    self.add_slave(*clients)
    for c in clients:
      if c:
        c.pausables.add(self)

  def run(self):
    was_running = self.is_running
    super(MasterRunnable, self).run()
    self.runnables.foreach('run')

  def pause(self):
    try:
      if self.is_running:
        self.is_running = False
        self.pausables.foreach('pause')
        self.is_running = True
      super(MasterRunnable, self).pause()
    except:
      if not Quit.QUITTING:
        raise

  def begin(self):
    super(MasterRunnable, self).begin()
    self.runnables.foreach('begin')

  def unload(self):
    super(MasterRunnable, self).unload()
    self.runnables.foreach('unload')
예제 #5
0
class MasterRunnable(Runnable):
    """A Runnable that controls a list of other runnables.
    """
    def __init__(self):
        super(MasterRunnable, self).__init__()
        self.runnables = LockedList()
        self.pausables = LockedList()
        self.joinables = LockedList()

    def add_slave(self, *slaves):
        """Adds one or more slaves - Runnables that run, pause and join
        when this one does."""
        self.runnables.add(*slaves)
        self.pausables.add(*slaves)
        self.joinables.add(*slaves)

    def add_pause_only_slave(self, *slaves):
        self.pausables.add(*slaves)
        self.joinables.add(*slaves)

    def remove_slave(self, *slaves):
        self.runnables.remove(*slaves)
        self.pausables.remove(*slaves)
        self.joinables.remove(*slaves)

    def add_mutual_pause_slave(self, *clients):
        self.add_slave(*clients)
        for c in clients:
            if c:
                c.pausables.add(self)

    def run(self):
        super(MasterRunnable, self).run()
        self.runnables.foreach('run')

    def pause(self):
        try:
            if self.is_running:
                self.is_running = False
                self.pausables.foreach('pause')
                self.is_running = True
            super(MasterRunnable, self).pause()
        except:
            if Quit.QUITTING:
                LOGGER.error('')
            else:
                raise

    def begin(self):
        super(MasterRunnable, self).begin()
        self.runnables.foreach('begin')

    def unload(self):
        super(MasterRunnable, self).unload()
        self.runnables.foreach('unload')