Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
A simple communication infrastructure providing typed exchange channels.
This crate is part of the timely dataflow system, used primarily for its inter-worker communication. It may be indepedently useful, but it is separated out mostly to make clear boundaries in the project.
Threads are spawned with an allocator::Generic
, whose allocate
method returns a pair of several send endpoints and one
receive endpoint. Messages sent into a send endpoint will eventually be received by the corresponding worker,
if it receives often enough. The point-to-point channels are each FIFO, but with no fairness guarantees.
To be communicated, a type must implement the Serialize
trait. A default implementation of Serialize
is
provided for any type implementing Abomonation
. To implement other serialization strategies, wrap your type
and implement Serialize
for your wrapper.
Channel endpoints also implement a lower-level push
and pull
interface (through the Push
and Pull
traits), which is used for more precise control of resources.
#Examples
// configure for two threads, just one process.
let config = Process;
// initailizes communication, spawns workers
initialize;
The should produce output like:
worker 0 started
worker 1 started
worker 0: received: <hello, 0>
worker 1: received: <hello, 1>
worker 0: received: <hello, 0>
worker 1: received: <hello, 1>