split-channel

Control.Concurrent.Chan split into sending and receiving halves.

Latest on Hackage:0.2.0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed by Leon P Smith, Joey Adams
Maintained by [email protected]

This module splits Control.Concurrent.Chan into sending and receiving halves, which allows the type system to more finely constrain program behavior. As a secondary benefit, messages written to channels with no receive ports associated with them can be reliably garbage collected.

In addition, this module incorporates several of clean-ups and additions to the venerable Chan. Most notably, the deprecated thread-unsafe functions have been removed, the ability to duplicate Receive Ports has been added, the sendMany operation allows for multiple messages to be sent atomically, and the split operation turns a single channel into two.