                  shapes=None, log_queue=None, log_level=None,
                  args=None, kwargs=None):
          """ Shared Memory Object runner """
          # Fork inherits the queue handler, so skip registration with "fork"
          if log_queue and log_level is not None and mp.get_start_method() != "fork":
              set_root_logger(log_level, queue=log_queue)
          logger.debug("FixedProducerDispatcher worker for %s started", str(target))
          np_data = [cls._np_from_shared(d, shapes, dtype) for d in data]
  
          def get_free_slot():
              while not stop_event.is_set():
 
</s> remove                 if stop_event.is_set() or i is None:
 </s> add                 if stop_event.is_set() or i is None or i == "EOF": </s> remove             loss[side] = batcher.train_one_batch(is_preview_iteration)
            if not is_preview_iteration:
 </s> add             loss[side] = batcher.train_one_batch(do_preview)
            if not do_preview and not do_timelapse: </s> remove         if timelapse_kwargs is not None:
 </s> add         if do_timelapse: </s> remove         is_preview_iteration = False if viewer is None else True
 </s> add         do_preview = False if viewer is None else True
        do_timelapse = False if timelapse_kwargs is None else True
        set_root_logger(log_level, queue=log_queue)
                  shapes=None, log_queue=None, log_level=None,
                  args=None, kwargs=None):
          """ Shared Memory Object runner """
          # Fork inherits the queue handler, so skip registration with "fork"
        set_root_logger(log_level, queue=log_queue)
        set_root_logger(log_level, queue=log_queue)
          logger.debug("FixedProducerDispatcher worker for %s started", str(target))
          np_data = [cls._np_from_shared(d, shapes, dtype) for d in data]
  
          def get_free_slot():
              while not stop_event.is_set():
keep keep keep keep replace replace keep keep keep keep keep
 Minor FixedProducerDispatcher changes. Fix timelapse bug 
lib/multithreading.py