One of the thread scaling challenges nowadays for the pools is the contention on the shared caches. There's never any situation where we have a shared cache and no local cache anymore, so we can technically afford to transfer objects from the shared cache to the local cache before returning them to the user via the regular path. This adds a little bit more work per object per miss, but will permit batch processing later. This patch simply moves pool_get_from_shared_cache() to pool.c under the new name pool_refill_local_from_shared(), and this function does not return anything but it places the allocated object at the head of the local cache.