Fix deadlock.

There might be a deadlock. If the ThreadPool gets notified after the consumer puts the result of the last spec to execute into the result stack. The consumer thread might then be preempted before it can decrement the Thread counter. ThreadPool::start reenters the loop (because consumer.isReady() is not true) and waits for a new notification, since consumer.results is empty. However this notification will never happen because the consumer finishes.