2 releases
Uses old Rust 2015
0.1.1 | Nov 16, 2017 |
---|---|
0.1.0 | Nov 16, 2017 |
#41 in #object-pool
13KB
132 lines
Random Pool
A threadsafe, fixed-size, persistent object pool, where its contents are individually guarded by Mutexes and are guaranteed to be accessed randomly.
Use Case
This crate is useful for situations where you need a fixed number of mutable elements that can be shared across threads, but the particular element you are accessing is not important.
This is useful either when you want a pool of identical resources that you don't intend to modify, like DB connections, or when you want a set of resources that when accessed randomly, will trend towards having the same contents, like a dynamic cache.
Features
- Threadsafe - The pool can be shared across threads if wrapped in an
Arc
. - Interior mutability - Elements in the pool can be mutated.
- Random access - An element in the pool will be randomly returned to the caller if it is not already locked.
- Get elements by either possibly waiting on a spinlock to release (
get()
), or to return None if all elements are currently locked (try_get()
). - Run a custom function on all elements in the pool, one element at a time.
Dependencies
~330–560KB