random-pool 0.1.1

A threadsafe, fixed size, pool, where its contents are individually guarded by Mutexes.
Documentation

Current Crates.io Version

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.