Description
Control.Concurrent.Chan split into sending and receiving halves.
Description
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.