Parallel Event Emitter
Implementation of an event emitter that invokes event listener callbacks concurrently in a configurable thread pool,
using Futures to notify callers of success or errors.
Because all values must be transferred across thread boundaries, all types T must be Send.
Additionally, all types T must be Any, so T: 'static.
Usage
[]
= "0.1"
= "0.2.4"
Example using a String as the key:
extern crate futures;
extern crate parallel_event_emitter;
use Future;
use *;
Or using a custom event type:
extern crate futures;
extern crate parallel_event_emitter;
use Future;
use *;
Trace<E> type
This crate depends on the trace-error crate to have simple and lightweight backtraces on all error Results.
If you choose not to use that, which is fine by me, simply call .into_error() on all Trace<E> values to get the real error.
impl Trait feature
Instead of having all the emit* methods returning a boxed Future (BoxFuture),
the Cargo feature conservative_impl_trait can be given to enable impl Future return types on
all the emit* methods.
[]
= "0.2.4"
= ["default", "conservative_impl_trait"] # And maybe integer_atomics
Larger ListenerIds
Although the ListenerId type itself is u64,
the atomic counter underneath is restricted to AtomicUsize by default.
To enable true guaranteed 64-bit counters, use the integer_atomics feature for the crate.
[]
= "0.2.4"
= ["default", "integer_atomics"] # And maybe conservative_impl_trait