#pool #thread-safe #mutex #content #fixed-size #element #object-pool

random-pool

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

2 releases

Uses old Rust 2015

0.1.1 Nov 16, 2017
0.1.0 Nov 16, 2017

#41 in #object-pool

Custom license

13KB
132 lines

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.

Dependencies

~330–560KB