Parallel Event Emitter
Implementation of an event emitter that invokes event listener callbacks concurrently in a configurable thread pool,
using Future
s 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 Result
s.
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 ListenerId
s
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