A configurable, multi-threaded signals and slots implementation for Rust. Uses mpsc channels and a configurable event-loop-like system internally to allow for fully multi-threaded message handling without wasting cpu time.
Example
use ;
use ;
use Duration;
//create a slot that will poll continuously for 10 milliseconds in 10 millisecond intervals
let mut slot = new;
let mut sig = new;
let multiply = new;
let multiply_cloned = multiply.clone;
let num = new;
let num_cloned = num.clone;
slot.connect;
let callback = move |t: i32| ;
slot.open;
sig.emit;
//in practice this would be using some sort of timing synchronization mechanism,
//but this is good enough for this simple test/example to make sure the 'emit' has finished
//before 'assert' gets called
sleep;
let multiplied = num.load;
assert_eq!;
multiply.store;
//ditto above
sleep;
sig.emit;
//ditto above
sleep;
let divided = num.load;
assert_eq!;
slot.close;