I'm not sure why that is necessary. I already make sure the repeating task is terminated by keeping track of the LoopingCall object and then invoking stop() on it in stopWorker(). Is there something I'm missing?