umem_cache semantics
[Not sure which forum this question really belongs in...]
I'm trying to find out the semantics of umem_cache_alloc/umem_cache_free. In general I expect that buffers allocated from a umem_cache and then returned to the cache with umem_cache_free *remain* in the cache and will possibly be returned from subsequent calls to umem_cache_alloc; but under what (if any) circumstances will a buffer which is 'in the cache' as a result of an _alloc/_free pair of calls be released from my cache back to the system?
Some explanation: for use in a lock-free queue implementation I need a object 'pool' where freed objects remain available in the pool (as they may still be accessed by other threads after one thread has freed them) and I was hoping to build this facility using a umem_cache...

