Mercurial > urweb
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} \\ |