That's not the point at all. Having a per-thread pool means synchronization-free alloc.
What happens with the object afterwards is not relevant.
What happens with the object afterwards is not relevant.
Edit: wrong, I re-checked. The solution to this is that marking an object as free is lock-free. The freed objects do not immediately change thread pools.