Pulling out spinning and atomic operations.

They were unnecessary and lead to extra overhead.
Combining allocations in closure to a single one.

Freeing the closure also degrades to a single free: performance win.