[Haskell-cafe] Misleading MVar documentation
malcolm.wallace at me.com
Sun Jan 16 10:56:49 CET 2011
On 16 Jan 2011, at 03:58, Jan-Willem Maessen wrote:
> Actually, the first presentation of M-structures is rather older than
> that. See Barth, Nikhil, and Arvind's FPCA '91 paper:
> The original formulation was indeed in terms of "take" and "put",
> though unconditional read and write primitives were prtty commonly
> used in Id programs. The take/put view can also usefully be thought
> of as a 1-element blocking channel.
The full spectrum of one-element communication protocols is set out in
H R Simpson. The MASCOT method. Software Engineering Journal, 1(3):103–
120, March 1986.
The notation was known as Real Time Networks. In this scheme, there
are four types of protocol, each useful in different circumstances:
blocking read, blocking write: a channel
non-blocking read, blocking write: a constant
blocking read, non-blocking write: a signal
non-blocking read, non-blocking write: a pool
The first of these, channel, corresponds to the MVar. The pool
corresponds to an IORef.
More information about the Haskell-Cafe