• Michael Hanselmann's avatar
    workerpool: Don't notify if there was no task · b3558df1
    Michael Hanselmann authored
    Workers have to notify their pool if they finished a task to make
    the WorkerPool.Quiesce function work. This is done in the finally:
    clause to notify even in case of an exception. However, before
    we notified on each run, even if there was no task, thereby creating
    some sort of an endless loop of notifications. In a future patch
    we should split the single condition object into several to
    produce less spurious notifications.
    
    While we're at this, this patch also adds two new functions to
    BaseWorker to query whether it's currently running a task and then
    uses one of these functions in the WorkerPool instead of querying
    the internal variable directly.
    
    Reviewed-by: iustinp
    b3558df1