with-thread-pool macro