message: sched: Don't allow empty rounds which cause infinite loops.
diff: @@ -181,6 +181,9 @@ class DepthFirst(SchedulingPolicy):
  def remove(self, coroutine):
  self.__coroutines.remove(coroutine)
  + children = self.__hierarchy.pop(coroutine, None)
  + if children is not None:
  + assert len(children) == 0
  self.__hierarchy.get(coroutine.parent).remove(coroutine)
  def freeze(self, coroutine):
  @@ -191,9 +194,7 @@ class DepthFirst(SchedulingPolicy):
  def round(self):
  c = self.__round(self.__hierarchy.get(None, ()))
  - if c is None:
  - return ()
  - else:
  + assert c is not None
  return (c,)
  def __round(self, coroutines):
  @@ -208,6 +209,7 @@ class DepthFirst(SchedulingPolicy):
  if active:
  return coroutine
  +
  class Scheduler:
  __instance = None
  