comparison doc/manual.tex @ 1940:1484ba362062

Add a bit of manual clarification about channels and clients
author Adam Chlipala <adam@chlipala.net>
date Wed, 25 Dec 2013 12:02:42 -0500
parents f1c211936557
children 0992323fa264
comparison
equal deleted inserted replaced
1939:c52365a4ce41 1940:1484ba362062
2192 $$\begin{array}{l} 2192 $$\begin{array}{l}
2193 \mt{type} \; \mt{client} \\ 2193 \mt{type} \; \mt{client} \\
2194 \mt{val} \; \mt{self} : \mt{transaction} \; \mt{client} 2194 \mt{val} \; \mt{self} : \mt{transaction} \; \mt{client}
2195 \end{array}$$ 2195 \end{array}$$
2196 2196
2197 \emph{Channels} are the means of message-passing. Each channel is created in the context of a client and belongs to that client; no other client may receive the channel's messages. Each channel type includes the type of values that may be sent over the channel. Sending and receiving are asynchronous, in the sense that a client need not be ready to receive a message right away. Rather, sent messages may queue up, waiting to be processed. 2197 \emph{Channels} are the means of message-passing. Each channel is created in the context of a client and belongs to that client; no other client may receive the channel's messages. Note that here \emph{client} has a technical Ur/Web meaning so that it describes only \emph{single page views}, so a user following a traditional link within an application will remove the ability for \emph{any} code to receive messages on the channels associated with the previous client. Each channel type includes the type of values that may be sent over the channel. Sending and receiving are asynchronous, in the sense that a client need not be ready to receive a message right away. Rather, sent messages may queue up, waiting to be processed.
2198 2198
2199 $$\begin{array}{l} 2199 $$\begin{array}{l}
2200 \mt{con} \; \mt{channel} :: \mt{Type} \to \mt{Type} \\ 2200 \mt{con} \; \mt{channel} :: \mt{Type} \to \mt{Type} \\
2201 \mt{val} \; \mt{channel} : \mt{t} ::: \mt{Type} \to \mt{transaction} \; (\mt{channel} \; \mt{t}) \\ 2201 \mt{val} \; \mt{channel} : \mt{t} ::: \mt{Type} \to \mt{transaction} \; (\mt{channel} \; \mt{t}) \\
2202 \mt{val} \; \mt{send} : \mt{t} ::: \mt{Type} \to \mt{channel} \; \mt{t} \to \mt{t} \to \mt{transaction} \; \mt{unit} \\ 2202 \mt{val} \; \mt{send} : \mt{t} ::: \mt{Type} \to \mt{channel} \; \mt{t} \to \mt{t} \to \mt{transaction} \; \mt{unit} \\