Fragile
This library provides wrapper types that permit sending non Send types to other threads and use runtime checks to ensure safety.
It provides the Fragile<T>
, Sticky<T>
and SemiSticky<T>
types which are
similar in nature but have different behaviors with regards to how destructors
are executed. The Fragile<T>
will panic if the destructor is called in another
thread, Sticky<T>
will temporarily leak the object until the thread shuts down.
SemiSticky<T>
is a compromise of the two. It behaves like Sticky<T>
but it
avoids the use of thread local storage if the type does not need Drop
.
Example
use thread;
// creating and using a fragile object in the same thread works
let val = new;
assert_eq!;
assert!;
// once send to another thread it stops working
spawn.join
.unwrap;
License and Links
- Documentation
- Issue Tracker
- License: Apache 2.0