2.0.1 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
Apache-2.0 - Apache License 2.0This 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.
use std::thread;
// creating and using a fragile object in the same thread works
let val = Fragile::new(true);
assert_eq!(*val.get(), true);
assert!(val.try_get().is_ok());
// once send to another thread it stops working
thread::spawn(move || {
assert!(val.try_get().is_err());
}).join()
.unwrap();