fix data race in ThreadPool::run_async