Use TaskPool instead of rolling our own