3rd rewrite of thread pool, still broken