I've gotten a bit sidetracked and have been taking a closer look at the worker and have a much better idea how it works. It is showing I think it badly needs some serious re-factoring or a re-write. A centralized queue with events added to it by the schedulers would be a lot simpler and creates a new Runner for each Task have about the same efficiency, and probably better efficiency if we used a thread pool with a shared queue. Currently, A Runner object is created for each Task. The Runner runs that Task and then asks the Scheduler for more Tasks. If there's more than one Task, a new Runner started for each extra Task, and those Runners will repeat the process. This chaining goes on indefinitely. The Runner dies when the Scheduler has no more Tasks for it, or it gets poisoned. A few comments would have made this a lot easier to follow. -John ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the QSERV-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1