This library implements the channel model of interprocess communication.

Channels are one model of interprocess communication that has its roots in communicating sequential process (CSP). With channels it is possible to realize processing graphs, that can be used for more than one execution, compared to a graph that is setup with futures. Channels consist of a sending and a receiving part. Each receiver has an attached process that gets executed when a value is send through. It is possible to split, join, zip, and merge channels. Each processing node is associated with a process.


  • channel

    Creates a pair that consists of a sender and a receiver

    (template function)
  • join

    Creates a future that joins all passed arguments

    (template function)
  • merge

    Creates a future that merges all passed arguments

    (template function)
  • process

    Describes a process that gets executed whenever a value is passed into the channel

    (policy class)
  • receiver

    Implements the receiving part of a CSP channel

    (template class)
  • sender

    Implements the sending part of a CSP channel

    (template class)
  • zip

    It creates a process that zips all passed arguments and returns a receiver.

    (template function)