/usr/share/doc/racket/distributed-places/index.html is in racket-doc 6.7-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Distributed Places</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="icons.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">►</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">Distributed Places</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="#%28part._.Define_.Remote_.Server%29" class="tocviewlink" data-pltdoc="x">Define Remote Server</a></td></tr><tr><td align="right">2 </td><td><a href="#%28part._.Async_.Bidirectional_.Channels%29" class="tocviewlink" data-pltdoc="x">Async Bidirectional Channels</a></td></tr><tr><td align="right">3 </td><td><a href="#%28part._distributed-places-.M.P.I%29" class="tocviewlink" data-pltdoc="x">Distributed Places MPI</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">Distributed Places</a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">message-<wbr></wbr>router</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-with-place-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawn-<wbr></wbr>node-<wbr></wbr>with-<wbr></wbr>place-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-supervise-place-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawn-<wbr></wbr>node-<wbr></wbr>supervise-<wbr></wbr>place-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-remote-racket-node%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawn-<wbr></wbr>remote-<wbr></wbr>racket-<wbr></wbr>node</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._create-place-node%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">create-<wbr></wbr>place-<wbr></wbr>node</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-place-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">supervise-<wbr></wbr>place-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-process-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">supervise-<wbr></wbr>process-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-thread-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">supervise-<wbr></wbr>thread-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restart-every%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">restart-<wbr></wbr>every</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._every-seconds%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">every-<wbr></wbr>seconds</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">after-<wbr></wbr>seconds</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connect-to-named-place%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">connect-<wbr></wbr>to-<wbr></wbr>named-<wbr></wbr>place</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._log-message%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">log-<wbr></wbr>message</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">event-<wbr></wbr>container<%></span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29._register%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">register</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawned-<wbr></wbr>process%</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29._get-pid%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>pid</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">place-<wbr></wbr>socket-<wbr></wbr>bridge%</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29._get-sc-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>sc-<wbr></wbr>id</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">socket-<wbr></wbr>connection%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">node%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29._sync-events%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">sync-<wbr></wbr>events</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">remote-<wbr></wbr>node%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-first-place%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>first-<wbr></wbr>place</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-first-place-channel%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>first-<wbr></wbr>place-<wbr></wbr>channel</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-log-prefix%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>log-<wbr></wbr>prefix</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._launch-place%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">launch-<wbr></wbr>place</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._remote-connect%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">remote-<wbr></wbr>connect</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._send-exit%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">send-<wbr></wbr>exit</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node-send-exit%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">node-<wbr></wbr>send-<wbr></wbr>exit</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node-get-first-place%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">node-<wbr></wbr>get-<wbr></wbr>first-<wbr></wbr>place</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._distributed-place-wait%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">distributed-<wbr></wbr>place-<wbr></wbr>wait</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">remote-<wbr></wbr>connection%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29._set-on-channel%21%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">set-<wbr></wbr>on-<wbr></wbr>channel!</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">place%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29._wait-for-die%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">wait-<wbr></wbr>for-<wbr></wbr>die</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">connection%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">respawn-<wbr></wbr>and-<wbr></wbr>fire%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">after-<wbr></wbr>seconds%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">restarter%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._distributed-launch-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">distributed-<wbr></wbr>launch-<wbr></wbr>path</span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">ssh-<wbr></wbr>bin-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._racket-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">racket-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._build-distributed-launch-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">build-<wbr></wbr>distributed-<wbr></wbr>launch-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawn-<wbr></wbr>node-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-nodes%2Fjoin%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">spawn-<wbr></wbr>nodes/<span class="mywbr"> </span>join</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-put%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">*channel-<wbr></wbr>put</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-get%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">*channel-<wbr></wbr>get</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">*channel?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._send-new-place-channel-to-named-dest%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">send-<wbr></wbr>new-<wbr></wbr>place-<wbr></wbr>channel-<wbr></wbr>to-<wbr></wbr>named-<wbr></wbr>dest</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-spawn-remote-node%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mr-<wbr></wbr>spawn-<wbr></wbr>remote-<wbr></wbr>node</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-supervise-named-dynamic-place-at%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mr-<wbr></wbr>supervise-<wbr></wbr>named-<wbr></wbr>dynamic-<wbr></wbr>place-<wbr></wbr>at</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-connect-to%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mr-<wbr></wbr>connect-<wbr></wbr>to</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._start-message-router%2Fthread%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">start-<wbr></wbr>message-<wbr></wbr>router/<span class="mywbr"> </span>thread</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">port-<wbr></wbr>no?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">DEFAULT-<wbr></wbr>ROUTER-<wbr></wbr>PORT</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">named-<wbr></wbr>place-<wbr></wbr>typed-<wbr></wbr>channel%</span></span></a></td></tr><tr><td><a href="#%28constructor._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">new</span></span></a></td></tr><tr><td><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29._get%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._tc-get%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">tc-<wbr></wbr>get</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._write-flush%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">write-<wbr></wbr>flush</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._printf%2Ff%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">printf/<span class="mywbr"> </span>f</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._displayln%2Ff%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">displayln/<span class="mywbr"> </span>f</span></span></a></td></tr><tr><td><span class="tocsublinknumber">1<tt> </tt></span><a href="#%28part._.Define_.Remote_.Server%29" class="tocsubseclink" data-pltdoc="x">Define Remote Server</a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">define-<wbr></wbr>remote-<wbr></wbr>server</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">define-<wbr></wbr>named-<wbr></wbr>remote-<wbr></wbr>server</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-state%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">define-<wbr></wbr>state</span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-rpc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">define-<wbr></wbr>rpc</span></a></td></tr><tr><td><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-cast%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">define-<wbr></wbr>cast</span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._log-to-parent%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">log-<wbr></wbr>to-<wbr></wbr>parent</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2<tt> </tt></span><a href="#%28part._.Async_.Bidirectional_.Channels%29" class="tocsubseclink" data-pltdoc="x">Async Bidirectional Channels</a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._make-async-bi-channel%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">make-<wbr></wbr>async-<wbr></wbr>bi-<wbr></wbr>channel</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">async-<wbr></wbr>bi-<wbr></wbr>channel?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel-get%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">async-<wbr></wbr>bi-<wbr></wbr>channel-<wbr></wbr>get</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel-put%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">async-<wbr></wbr>bi-<wbr></wbr>channel-<wbr></wbr>put</span></span></a></td></tr><tr><td><span class="tocsublinknumber">3<tt> </tt></span><a href="#%28part._distributed-places-.M.P.I%29" class="tocsubseclink" data-pltdoc="x">Distributed Places MPI</a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>comm</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>id</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-cnt%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>cnt</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-send%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>send</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-recv%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>recv</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-init%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>init</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-broadcast%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>broadcast</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-reduce%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>reduce</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-barrier%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>barrier</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-allreduce%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>allreduce</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-partition%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>partition</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-build-default-config%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>build-<wbr></wbr>default-<wbr></wbr>config</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>launch</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-finish%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">rmpi-<wbr></wbr>finish</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.7</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.7", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">up</a> <span class="nonavigation">next →</span></span> </div><h2 x-source-module="(lib "scribblings/distributed-places/distributed-places.scrbl")" x-source-pkg="distributed-places-doc" x-part-tag=""top""><a name="(part._top)"></a><a name="(part._distributed-places)"></a><a name="(mod-path._racket/place/distributed)"></a>Distributed Places</h2><div class="SAuthorListBox"><span class="SAuthorList"><p class="author">Kevin Tew</p></span></div><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span>See also <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&rel=parallelism.html%23%2528part._distributed-places%2529&version=6.7" class="Sq" data-pltdoc="x">Distributed Places</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&rel=index.html&version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a>.</p></blockquote></blockquote></blockquote><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left" colspan="2"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/place/distributed</span></a><span class="RktPn">)</span></td></tr><tr><td align="left"> </td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">distributed-places-lib</span></span></td></tr></table></p><p>Distributed places support programs whose computation may span
physical machines. The design relies on machine <a name="(tech._node)"></a><span style="font-style: italic">nodes</span> that
perform computation. The programmer configures a new distributed
system using a declarative syntax and callbacks. A node begins life
with one initial place: the <a name="(tech._message._router)"></a><span style="font-style: italic">message router</span>. After a node has been configured, its
message router is activated by calling the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>
function. The message router listens on a TCP port for incoming
connections from other nodes in the distributed system. Places can be
spawned within the node by sending place-spawn request messages to the
node’s message router.</p><p>The distributed places implementation relies on two assumptions:</p><ul><li><p>The user’s <span class="stt">".ssh/config"</span> and
<span class="stt">".ssh/authorized_keys"</span> files are configured correctly to
allow passwordless connection to remote hosts via public key authentication.</p></li><li><p>Distributed places does not support the specification of ssh usernames.
If a non-default ssh username is required the <span class="stt">".ssh/config"</span> file
should be used to specifiy the username.</p></li><li><p>All machines run the same version of Racket. Futures versions of distributed
places may use the zo binary data format for serialization.</p></li></ul><p>The following example illustrates a configuration and use of
distributed places that starts a new node on the current machine and
passes it a <span class="RktVal">"Hello World"</span> string:</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">module</a></span><span class="hspace"> </span><span class="RktSym">hello-world-example</span><span class="hspace"> </span><span class="RktSym">racket/base</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="hspace"> </span><span class="RktSym">racket/place/distributed</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">racket/place</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._provide%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">provide</a></span><span class="hspace"> </span><span class="RktSym">hello-world</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">hello-world</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528form._%2528%2528lib._racket%252Fplace..rkt%2529._place%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">place</a></span><span class="hspace"> </span><span class="RktSym">ch</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._printf%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">printf</a></span><span class="hspace"> </span><span class="RktVal">"hello-world received: ~a\n"</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel-get%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel-get</a></span><span class="hspace"> </span><span class="RktSym">ch</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel-put%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel-put</a></span><span class="hspace"> </span><span class="RktSym">ch</span><span class="hspace"> </span><span class="RktVal">"Hello World\n"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._printf%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">printf</a></span><span class="hspace"> </span><span class="RktVal">"hello-world sent: Hello World\n"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._module%252B%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">module+</a></span><span class="hspace"> </span><span class="RktSym">main</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">1) spawns a node running at "localhost" and listenting on port</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">6344 for incomming connections.</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">2) connects to the node running at localhost:6344 and creates a</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">place on that node by calling the hello-world procedure from</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">the current module.</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">3) returns a remote-node% instance (node) and a</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">remote-connection% instance (pl) for communicating with the</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">new node and place</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-values%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define-values</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">node</span><span class="hspace"> </span><span class="RktSym">pl</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-supervise-place-at%29%29" class="RktValLink" data-pltdoc="x">spawn-node-supervise-place-at</a></span><span class="hspace"> </span><span class="RktVal">"localhost"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVal">6344</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:thunk</span><span class="hspace"> </span><span class="RktVal">#t</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=syntax&rel=Source_Locations.html%23%2528form._%2528%2528lib._syntax%252Flocation..rkt%2529._quote-module-path%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">quote-module-path</a></span><span class="hspace"> </span><span class="RktVal">".."</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">hello-world</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">starts a message router which adds three event-container<%>s to</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">its list of events to handle: the node and two after-seconds</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">event containers . Two seconds after the launch of the message-router, a</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">message will be sent to the pl place.</span><span class="hspace"> </span><span class="RktCmt">After six seconds, the</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktCmt">;</span><span class="RktCmt"> </span><span class="RktCmt">program and all spawned nodes and places will terminate.</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">node</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds%29%29" class="RktStxLink" data-pltdoc="x">after-seconds</a></span><span class="hspace"> </span><span class="RktVal">2</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-put%29%29" class="RktValLink" data-pltdoc="x">*channel-put</a></span><span class="hspace"> </span><span class="RktSym">pl</span><span class="hspace"> </span><span class="RktVal">"Hello"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._printf%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">printf</a></span><span class="hspace"> </span><span class="RktVal">"message-router received: ~a\n"</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-get%29%29" class="RktValLink" data-pltdoc="x">*channel-get</a></span><span class="hspace"> </span><span class="RktSym">pl</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds%29%29" class="RktStxLink" data-pltdoc="x">after-seconds</a></span><span class="hspace"> </span><span class="RktVal">6</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Exiting.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exit%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exit</a></span><span class="hspace"> </span><span class="RktVal">0</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._message-router))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValDef RktValLink" data-pltdoc="x">message-router</a></span></span><span class="hspace"> </span><span class="RktVar">ec</span><span class="hspace"> </span><span class="RktMeta">...+</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ec</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Waits in an endless loop for one of many events to become ready. The
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> procedure constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span>
instance to serve as the message router for the node. The
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> procedure then adds all the declared
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span>s to the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> and finally calls
the never ending loop <span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29._sync-events%29%29" class="RktValLink" data-pltdoc="x">sync-events</a></span> method, which handles
events for the node.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._spawn-node-with-place-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-with-place-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawn-node-with-place-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-module-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-place-function-name</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:initial-message</span><span class="hspace"> </span><span class="RktVar">initial-message</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:ssh-bin-path</span><span class="hspace"> </span><span class="RktVar">ssh-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:named</span><span class="hspace"> </span><span class="RktVar">place-name</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:thunk</span><span class="hspace"> </span><span class="RktVar">thunk</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-module-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">module-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-place-function-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">initial-message</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">racket-path</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ssh-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym">string-path?</span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-%7E3estring%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path->string</a></span><span class="hspace"> </span><span class="RktSym">distributed-launch-path</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">place-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">thunk</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Spawns a new remote node at <span class="RktVar">hostname</span> with one instance place specified by
the <span class="RktVar">instance-module-path</span> and <span class="RktVar">instance-place-function-name</span>.</div></p><p>When <span class="RktVar">thunk</span> is <span class="RktVal">#f</span>, the place is created as the result of the framework
calling <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span><span class="stt"> </span><span class="RktVar">instance-module-path</span><span class="stt"> </span><span class="RktVar">instance-place-function-name</span><span class="RktPn">)</span>.
in the new node.</p><p>When <span class="RktVar">thunk</span> is <span class="RktVal">#t</span> the
<span class="RktVar">instance-place-function-name</span> function should use
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span> or <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528form._%2528%2528lib._racket%252Fplace..rkt%2529._place%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">place</a></span> to create and return an
initial place in the new node.</p><p>When the <span class="RktVar">place-name</span> symbol is present a named place is
created. The <span class="RktVar">place-name</span> symbol is used to establish later
connections to the named place.</p><p>The result is a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance, not a
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span>. Use <span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-first-place%29%29" class="RktValLink" data-pltdoc="x">get-first-place</a></span> on the result to obtain a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span>.</p><p>The <span class="RktSym">restart-on-exit</span> argument can be <span class="RktVal">#t</span> to instruct
the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance to respawn the place on the
remote node should it exit or terminate at any time. It can also be a
procedure of zero arguments to implement the restart procedure, or it
can be an object that support a <span class="RktSym">restart</span> method that takes a
<a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528tech._place%2529&version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">place</span></a>
argument.}</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._spawn-node-supervise-place-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-supervise-place-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawn-node-supervise-place-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-module-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-place-function-name</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:initial-message</span><span class="hspace"> </span><span class="RktVar">initial-message</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:ssh-bin-path</span><span class="hspace"> </span><span class="RktVar">ssh-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:named</span><span class="hspace"> </span><span class="RktVar">named</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:thunk</span><span class="hspace"> </span><span class="RktVar">thunk</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-module-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">module-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-place-function-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">initial-message</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">racket-path</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ssh-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym">string-path?</span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-%7E3estring%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path->string</a></span><span class="hspace"> </span><span class="RktSym">distributed-launch-path</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">named</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">thunk</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym">spawn-node-with-dynamic-place-at</span>, but the result is two values: the
new <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> and its <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._spawn-remote-racket-node))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-remote-racket-node%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawn-remote-racket-node</a></span></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:ssh-bin-path</span><span class="hspace"> </span><span class="RktVar">ssh-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">launcher-path</span>]</td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:use-current-ports</span><span class="hspace"> </span><span class="RktVar">use-current-ports</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">racket-path</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ssh-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym">string-path?</span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-%7E3estring%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path->string</a></span><span class="hspace"> </span><span class="RktSym">distributed-launch-path</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">use-current-ports</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Spawns a new remote node at <span class="RktVar">hostname</span> and returns a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> handle.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._create-place-node))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._create-place-node%29%29" class="RktValDef RktValLink" data-pltdoc="x">create-place-node</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:ssh-bin-path</span><span class="hspace"> </span><span class="RktVar">ssh-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:use-current-ports</span><span class="hspace"> </span><span class="RktVar">use-current-ports</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">racket-path</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ssh-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym">string-path?</span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-%7E3estring%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path->string</a></span><span class="hspace"> </span><span class="RktSym">distributed-launch-path</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">use-current-ports</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#t</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-remote-racket-node%29%29" class="RktValLink" data-pltdoc="x">spawn-remote-racket-node</a></span>, but the <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span> and <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-error-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-error-port</a></span>
are used as the standard ports for the spawned process instead of new pipe ports.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._supervise-place-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-place-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">supervise-place-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">remote-node</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-module-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-place-function-name</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:named</span><span class="hspace"> </span><span class="RktVar">named</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:thunk</span><span class="hspace"> </span><span class="RktVar">thunk</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-module-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">module-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-place-function-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">named</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">thunk</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">When <span class="RktVar">thunk</span> is <span class="RktVal">#f</span>, creates a new place on <span class="RktVar">remote-node</span> by using
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span> to invoke
<span class="RktVar">instance-place-function-name</span> from the module
<span class="RktVar">instance-module-path</span>.</div></p><p>When <span class="RktVar">thunk</span> is <span class="RktVal">#t</span>, creates a new place at <span class="RktVar">remote-node</span> by executing the thunk
exported as <span class="RktVar">instance-place-function-name</span> from the module
<span class="RktVar">instance-module-path</span>. The function should use
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span> or <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528form._%2528%2528lib._racket%252Fplace..rkt%2529._place%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">place</a></span> to create and return a place in the new
node.</p><p>When the <span class="RktSym">place-name</span> symbol is present a named place is
created. The <span class="RktSym">place-name</span> symbol is used to establish later
connections to the named place.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._supervise-process-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-process-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">supervise-process-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">commandline-argument</span><span class="hspace"> </span><span class="RktMeta">...+</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym">remote-process%</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">commandline-argument</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Spawns an attached external process at host <span class="RktVar">hostname</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._supervise-thread-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._supervise-thread-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">supervise-thread-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">remote-node</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-module-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">instance-thunk-function-name</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-module-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">module-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-thunk-function-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Creates a new threadon the <span class="RktVar">remote-node</span> by using
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._dynamic-require%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-require</a></span> to invoke
<span class="RktSym">instance-place-function-name</span> from the module
<span class="RktVar">instance-module-path</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._restart-every))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restart-every%29%29" class="RktValDef RktValLink" data-pltdoc="x">restart-every</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">seconds</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:retry</span><span class="hspace"> </span><span class="RktVar">retry</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:on-final-fail</span><span class="hspace"> </span><span class="RktVar">on-final-fail</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">is-a/c</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">seconds</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">retry</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">on-final-fail</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValLink" data-pltdoc="x">restarter%</a></span> instance that should be supplied to a <span class="RktPn">#:restart-on-exit</span> argument.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/distributed..rkt)._every-seconds))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._every-seconds%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">every-seconds</a></span></span><span class="hspace"> </span><span class="RktVar">seconds-expr</span><span class="hspace"> </span><span class="RktVar">body</span><span class="hspace"> </span><span class="RktVar">....</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span> instance that should be supplied
to a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>. The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span> instance
executes <span class="RktVar">body</span>s once every <span style="font-style: italic">N</span> seconds,
where <span style="font-style: italic">N</span> is the result of <span class="RktVar">seconds-expr</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/distributed..rkt)._after-seconds))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">after-seconds</a></span></span><span class="hspace"> </span><span class="RktVar">seconds-expr</span><span class="hspace"> </span><span class="RktVar">body</span><span class="hspace"> </span><span class="RktVar">....</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span> instance that should be supplied to
a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>. The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span> instance
executes the <span class="RktVar">body</span>s after a delay of <span style="font-style: italic">N</span> seconds from the
start of the event loop, where <span style="font-style: italic">N</span> is the result of
<span class="RktVar">seconds-expr</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._connect-to-named-place))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connect-to-named-place%29%29" class="RktValDef RktValLink" data-pltdoc="x">connect-to-named-place</a></span></span><span class="hspace"> </span><span class="RktVar">node</span><span class="hspace"> </span><span class="RktVar">name</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Connects to a named place on the <span class="RktVar">node</span> named <span class="RktVar">name</span> and returns a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> object.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._log-message))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._log-message%29%29" class="RktValDef RktValLink" data-pltdoc="x">log-message</a></span></span><span class="hspace"> </span><span class="RktVar">severity</span><span class="hspace"> </span><span class="RktVar">msg</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">severity</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fatal</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">error</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">warning</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">info</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">debug</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">msg</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Logs a message at the root node.</div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>interface</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._event-container~3c~25~3e))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValDef RktValLink" data-pltdoc="x">event-container<%></a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._interface%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">interface?</a></span></p></blockquote></td></tr></table></div><div class="SIntrapara">All objects that are supplied to the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> must
implement the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span> interface. The
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> calls the <span class="RktSym">register</span> method on each
supplied <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span> to obtain a list of events
on which the event loop should wait.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">an-event-container</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._event-container~3c~25~3e)._register))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29._register%29%29" class="RktValDef RktValLink" data-pltdoc="x">register</a></span><span class="hspace"> </span><span class="RktVar">events</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym">events?</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">events</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym">events?</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the list of events inside the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span> that
should be waited on by the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>.</div></p><p><div class="SIntrapara">The following classes all implement <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span> and
can be supplied to a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>:
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="RktValLink" data-pltdoc="x">spawned-process%</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="RktValLink" data-pltdoc="x">place-socket-bridge%</a></span>,
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span>,
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="RktValLink" data-pltdoc="x">place%</a></span> <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="RktValLink" data-pltdoc="x">connection%</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span>, and
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span>.
</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._spawned-process~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawned-process%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-spawned-process</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._spawned-process~25)._get-pid))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29._get-pid%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-pid</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._spawned-process~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="RktValLink" data-pltdoc="x">spawned-process%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">cmdline-list</span><span class="hspace"> </span><span class="RktVar">cmdline-list</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">[</span><span class="RktSym">parent</span><span class="hspace"> </span><span class="RktVar">parent</span><span class="RktPn">]</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawned-process~25%29%29" class="RktValLink" data-pltdoc="x">spawned-process%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cmdline-list</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">parent</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktVar">cmdline-list</span> is a list of command line arguments of type <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string</a></span> and/or <span class="RktSym">path</span>.</div></p><p><div class="SIntrapara">The <span class="RktVar">parent</span> argument is a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance that will be notified when the process dies via
a <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="stt"> </span><span class="RktVar">parent</span><span class="stt"> </span><span class="RktSym">process-died</span><span class="stt"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._this%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">this</a></span><span class="RktPn">)</span> call.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._place-socket-bridge~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">place-socket-bridge%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-place-socket-bridge</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._place-socket-bridge~25)._get-sc-id))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29._get-sc-id%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-sc-id</a></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._place-socket-bridge~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="RktValLink" data-pltdoc="x">place-socket-bridge%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">pch</span><span class="hspace"> </span><span class="RktVar">pch</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">sch</span><span class="hspace"> </span><span class="RktVar">sch</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">id</span><span class="hspace"> </span><span class="RktVar">id</span><span class="RktPn">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place-socket-bridge~25%29%29" class="RktValLink" data-pltdoc="x">place-socket-bridge%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">pch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">sch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValLink" data-pltdoc="x">socket-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktVar">pch</span> argument is a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel</a></span>. Messages
received on <span class="RktVar">pch</span> are forwarded to the socket-connection%
<span class="RktVar">sch</span> via a <span class="RktSym">dcgm</span> message. e.g.
<span class="RktPn">(</span><span class="RktSym">sconn-write-flush</span><span class="stt"> </span><span class="RktVar">sch</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">dcgm</span><span class="stt"> </span><span class="RktSym">DCGM-TYPE-INTER-DCHANNEL</span><span class="stt"> </span><span class="RktVar">id</span><span class="stt"> </span><span class="RktVar">id</span><span class="stt"> </span><span class="RktSym">msg</span><span class="RktPn">)</span><span class="RktPn">)</span>
The <span class="RktVar">id</span> is a <span class="RktSym">exact-positive-integer</span> that identifies
the socket-connection subchannel for this inter-node place connection.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._socket-connection~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">socket-connection%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._socket-connection~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValLink" data-pltdoc="x">socket-connection%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">[</span><span class="RktSym">host</span><span class="hspace"> </span><span class="RktVar">host</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">port</span><span class="hspace"> </span><span class="RktVar">port</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">retry-times</span><span class="hspace"> </span><span class="RktVar">retry-times</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">delay</span><span class="hspace"> </span><span class="RktVar">delay</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">background-connect?</span><span class="hspace"> </span><span class="RktVar">background-connect?</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">in</span><span class="hspace"> </span><span class="RktVar">in</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">out</span><span class="hspace"> </span><span class="RktVar">out</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">remote-node</span><span class="hspace"> </span><span class="RktVar">remote-node</span><span class="RktPn">]</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValLink" data-pltdoc="x">socket-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">host</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">retry-times</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">30</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">delay</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">1</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">background-connect?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym">output-port</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">When a <span class="RktVar">host</span> and <span class="RktVar">port</span> are supplied a new tcp
connection is established. If a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span> and
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span> are supplied as <span class="RktVar">in</span> and <span class="RktVar">out</span>,
the ports are used as a connection to the remote host. The
<span class="RktVar">retry-times</span> argument specifies how many times to retry the
connection attempt should it fail to connect and defaults to 30 retry
attempts. Often a remote node is still booting up when a connection
is attempted and the connection needs to be retried several times.
The <span class="RktVar">delay</span> argument specifies how many seconds to wait between
retry attempts. The <span class="RktVar">background-connect?</span> argument defaults to
<span class="RktVal">#t</span> and specifies that the constructor should retry
immediately and that connecion establishment should occur in the
background. Finally, the <span class="RktVar">remote-node</span> argument specifies the
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance that should be notified should the
connection fail.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._node~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">node%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> instance controls a distributed places node. It
launches places and routes inter-node place messages in the
distributed system. The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> form constructs a
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> instance under the hood. Newly spawned nodes also have
a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> instance in their initial place that serves as the
node’s message router.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._node~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span><span class="hspace"> </span>[<span class="RktPn">[</span><span class="RktSym">listen-port</span><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="RktPn">]</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._listen-port-number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listen-port-number?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> that will listen on <span class="RktVar">listen-port</span> for inter-node connections.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._node~25)._sync-events))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29._sync-events%29%29" class="RktValDef RktValLink" data-pltdoc="x">sync-events</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Starts the never ending event loop for this distributed places node.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._remote-node~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">remote-node%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span>, but for the remote API to a distributed places
node. Instances of <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> are returned by
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._create-place-node%29%29" class="RktValLink" data-pltdoc="x">create-place-node</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-remote-racket-node%29%29" class="RktValLink" data-pltdoc="x">spawn-remote-racket-node</a></span>, and
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-supervise-place-at%29%29" class="RktValLink" data-pltdoc="x">spawn-node-supervise-place-at</a></span>.</div><div class="SIntrapara">A <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> is a <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528tech._place._location%2529&version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">place location</span></a> in the
sense of <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-location%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-location?</a></span>, which means that it can be
supplied as the <span class="RktPn">#:at</span> argument to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span>.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._remote-node~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">[</span><span class="RktSym">listen-port</span><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="RktPn">]</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._listen-port-number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listen-port-number?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node~25%29%29" class="RktValLink" data-pltdoc="x">node%</a></span> that will listen on
<span class="RktVar">listen-port</span> for inter-node connections.</div></p><p>When set to true the <span class="RktVar">restart-on-exit</span> parameter causes the
specified node to be restarted when the ssh session spawning the node
dies.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._get-first-place))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-first-place%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-first-place</a></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> object instance for the first place spawned on this node.
</div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._get-first-place-channel))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-first-place-channel%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-first-place-channel</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns the communication channel for the first place spawned on this node.
</div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._get-log-prefix))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._get-log-prefix%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-log-prefix</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._format%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">format</a></span><span class="stt"> </span><span class="RktVal">"PLACE ~a:~a"</span><span class="stt"> </span><span class="RktSym">host-name</span><span class="stt"> </span><span class="RktSym">listen-port</span><span class="RktPn">)</span></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._launch-place))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._launch-place%29%29" class="RktValDef RktValLink" data-pltdoc="x">launch-place</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">place-exec</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:one-sided-place?</span><span class="hspace"> </span><span class="RktVar">one-sided-place?</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">place-exec</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">one-sided-place?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Launches a place on the remote node represented by this <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance.</div></p><p><div class="SIntrapara">The <span class="RktVar">place-exec</span> argument describes how the remote place should be launched,
and it should have one of the following shapes:
</div><div class="SIntrapara"><ul><li><p><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">place</span><span class="stt"> </span><span class="RktVar">place-module-path</span><span class="stt"> </span><span class="RktVar">place-thunk</span><span class="RktPn">)</span></p></li><li><p><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">dynamic-place</span><span class="stt"> </span><span class="RktVar">place-module-path</span><span class="stt"> </span><span class="RktVar">place-func</span><span class="RktPn">)</span></p></li></ul></div><div class="SIntrapara">The difference between these two launching methods is that
the <span class="RktVal">'</span><span class="RktVal">place</span> version of <span class="RktVar">place-exec</span> expects a
thunk to be exported by the module
<span class="RktSym">place-module-path</span>. Executing the thunk is expected to
create a new place and return a place descriptor to the newly
created place. The <span class="RktVal">'</span><span class="RktVal">dynamic-place</span> version of
<span class="RktVar">place-exec</span> expects place-func to be a function taking a
single argument, the initial channel argument, and calls
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._dynamic-place%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-place</a></span> on behalf of the user and creates the new
place from the <span class="RktSym">place-module-path</span> and
<span class="RktSym">place-func</span>.</div></p><p>The <span class="RktVar">restart-on-exit</span> argument is treated in the same way
as for <span class="RktSym">spawn-node-with-dynamic-place-at</span>.</p><p>The <span class="RktVar">one-sided-place?</span> argument is an internal use
argument for launching remote places from within a place using
the old design pattern.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._remote-connect))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._remote-connect%29%29" class="RktValDef RktValLink" data-pltdoc="x">remote-connect</a></span><span class="hspace"> </span><span class="RktVar">name</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Connects to a named place on the remote node represented by this <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-node</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-node~25)._send-exit))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._send-exit%29%29" class="RktValDef RktValLink" data-pltdoc="x">send-exit</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Sends a message instructing the remote node represented by this
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> instance to exit immediately</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._node-send-exit))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node-send-exit%29%29" class="RktValDef RktValLink" data-pltdoc="x">node-send-exit</a></span></span><span class="hspace"> </span><span class="RktVar">remote-node%</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-node%</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">node</span></td></tr></table></blockquote></div><div class="SIntrapara">Sends <span class="RktSym">node</span> a message telling it to exit immediately.
</div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._node-get-first-place))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._node-get-first-place%29%29" class="RktValDef RktValLink" data-pltdoc="x">node-get-first-place</a></span></span><span class="hspace"> </span><span class="RktVar">remote-node%</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-node%</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">node</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance of the first place spawned at this node</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._distributed-place-wait))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._distributed-place-wait%29%29" class="RktValDef RktValLink" data-pltdoc="x">distributed-place-wait</a></span></span><span class="hspace"> </span><span class="RktVar">remote-connection%</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">remote-connection%</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528form._%2528%2528lib._racket%252Fplace..rkt%2529._place%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">place</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Waits for <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528form._%2528%2528lib._racket%252Fplace..rkt%2529._place%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">place</a></span> to terminate.</div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._remote-connection~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">remote-connection%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span>
instance provides a remote api to a place
running on a remote distributed places node. It launches a
places or connects to a named place and routes inter-node place messages to the remote place.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._remote-connection~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">node</span><span class="hspace"> </span><span class="RktVar">node</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">place-exec</span><span class="hspace"> </span><span class="RktVar">place-exec</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">name</span><span class="hspace"> </span><span class="RktVar">name</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">restart-on-exit</span><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">one-sided-place?</span><span class="hspace"> </span><span class="RktVar">one-sided-place?</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">on-channel</span><span class="hspace"> </span><span class="RktVar">on-channel</span><span class="RktPn">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">place-exec</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">restart-on-exit</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">one-sided-place?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">on-channel</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance.</div></p><p>The <span class="RktVar">place-exec</span> argument describes how the remote place should be launched
in the same way as for <span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._launch-place%29%29" class="RktValLink" data-pltdoc="x">launch-place</a></span> in <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span>.</p><p>The <span class="RktVar">restart-on-exit</span> argument is treated in the same way
as for <span class="RktSym">spawn-node-with-dynamic-place-at</span>.</p><p>The <span class="RktVar">one-sided-place?</span> argument is an internal use
argument for launching remote places from within a place using
the old design pattern.</p><p>See <span class="RktSym">set-on-channel!</span> for description of <span class="RktVar">on-channel</span> argument.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-remote-connection</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._remote-connection~25)._set-on-channel!))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29._set-on-channel%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">set-on-channel!</a></span><span class="hspace"> </span><span class="RktVar">callback</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">callback</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym">channel</span><span class="hspace"> </span><span class="RktSym">msg</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Installs a handler function that handles messages from the remote place.
The <span class="RktSym">setup/distributed-docs</span> module uses this callback to handle job completion messages.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._place~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">place%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="RktValLink" data-pltdoc="x">place%</a></span> instance represents a place launched on a
distributed places node at that node. It launches a compute places and
routes inter-node place messages to the place.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._place~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="RktValLink" data-pltdoc="x">place%</a></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">node</span><span class="hspace"> </span><span class="RktVar">node</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">place-exec</span><span class="hspace"> </span><span class="RktVar">place-exec</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">ch-id</span><span class="hspace"> </span><span class="RktVar">ch-id</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">sc</span><span class="hspace"> </span><span class="RktVar">sc</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">[</span><span class="RktSym">on-place-dead</span><span class="hspace"> </span><span class="RktVar">on-place-dead</span><span class="RktPn">]</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29%29" class="RktValLink" data-pltdoc="x">place%</a></span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">place-exec</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">sc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValLink" data-pltdoc="x">socket-connection%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">on-place-dead</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym">event</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym">default-on-place-dead</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance.
The <span class="RktVar">place-exec</span> argument describes how the remote place should be launched
in the same way as for <span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._launch-place%29%29" class="RktValLink" data-pltdoc="x">launch-place</a></span> in <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span>.
The <span class="RktVar">ch-id</span> and <span class="RktVar">sc</span> arguments are internally used to
establish routing between the remote node spawning this place and the
place itself. The <span class="RktVar">on-place-dead</span> callback handles the event
when the newly spawned place terminates.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-place</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._place~25)._wait-for-die))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._place~25%29._wait-for-die%29%29" class="RktValDef RktValLink" data-pltdoc="x">wait-for-die</a></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Blocks and waits for the subprocess representing the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span> to exit.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._connection~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">connection%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="RktValLink" data-pltdoc="x">connection%</a></span> instance represents a connection to a
named-place instance running on the current node. It routes inter-node
place messages to the named place.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._connection~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="RktValLink" data-pltdoc="x">connection%</a></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">node</span><span class="hspace"> </span><span class="RktVar">node</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">name</span><span class="hspace"> </span><span class="RktVar">name</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">ch-id</span><span class="hspace"> </span><span class="RktVar">ch-id</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">sc</span><span class="hspace"> </span><span class="RktVar">sc</span><span class="RktPn">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._connection~25%29%29" class="RktValLink" data-pltdoc="x">connection%</a></span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">node</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">sc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._socket-connection~25%29%29" class="RktValLink" data-pltdoc="x">socket-connection%</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> instance.
The <span class="RktSym">place-exec</span> argument describes how the remote place should be launched
in the same way as for <span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29._launch-place%29%29" class="RktValLink" data-pltdoc="x">launch-place</a></span> in <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span>.
The <span class="RktVar">ch-id</span> and <span class="RktVar">sc</span> arguments are internally used to
establish routing between the remote node and this named-place.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._respawn-and-fire~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">respawn-and-fire%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span> instance represents a thunk that should
execute every <span class="RktSym">n</span> seconds.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._respawn-and-fire~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">seconds</span><span class="hspace"> </span><span class="RktVar">seconds</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">thunk</span><span class="hspace"> </span><span class="RktVar">thunk</span><span class="RktPn">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">seconds</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._and%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._real%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">real?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._not%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">not/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._negative%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">negative?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">thunk</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._respawn-and-fire~25%29%29" class="RktValLink" data-pltdoc="x">respawn-and-fire%</a></span> instance that when placed
inside a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> construct causes the supplied
thunk to execute every <span class="RktSym">n</span> seconds.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._after-seconds~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">after-seconds%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span> instance represents a thunk that should
execute after <span class="RktSym">n</span> seconds.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._after-seconds~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">seconds</span><span class="hspace"> </span><span class="RktVar">seconds</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">thunk</span><span class="hspace"> </span><span class="RktVar">thunk</span><span class="RktPn">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">seconds</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._and%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._real%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">real?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._not%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">not/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._negative%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">negative?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">thunk</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs an <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span> instance that when placed
inside a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span> construct causes the supplied
thunk to execute after <span class="RktSym">n</span> seconds.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._restarter~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">restarter%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._after-seconds~25%29%29" class="RktValLink" data-pltdoc="x">after-seconds%</a></span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><span class="hspace"> </span>extends:<span class="hspace"> </span></td><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._event-container~3c~25~3e%29%29" class="RktValLink" data-pltdoc="x">event-container<%></a></span></td></tr></table></td></tr></table></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValLink" data-pltdoc="x">restarter%</a></span> instance represents a restart strategy.</div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._restarter~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValLink" data-pltdoc="x">restarter%</a></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">seconds</span><span class="hspace"> </span><span class="RktVar">seconds</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">[</span><span class="RktSym">retry</span><span class="hspace"> </span><span class="RktVar">retry</span><span class="RktPn">]</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">[</span><span class="RktSym">on-final-fail</span><span class="hspace"> </span><span class="RktVar">on-final-fail</span><span class="RktPn">]</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValLink" data-pltdoc="x">restarter%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">seconds</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">retry</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">on-final-fail</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs an <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._restarter~25%29%29" class="RktValLink" data-pltdoc="x">restarter%</a></span> instance that when supplied to a
<span class="RktPn">#:restart-on-exit</span> argument, attempts to restart the process
every <span class="RktVar">seconds</span>. The <span class="RktVar">retry</span> argument specifies how
many time to attempt to restart the process before giving up. If the
process stays alive for <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=generic-numbers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._%252A%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">*</a></span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVar">seconds</span><span class="RktPn">)</span> the attempted retries
count is reset to <span class="RktVal">0</span>. The <span class="RktVar">on-final-fail</span> thunk is
called when the number of retries is exceeded</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._distributed-launch-path))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><span class="RktSymDef RktSym">distributed-launch-path</span></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Contains the local path to the distributed places launcher. The
distributed places launcher is the bootsrap file that launches the
message router on a new node.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._ssh-bin-path))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">ssh-bin-path</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns the path to the ssh binary on the local system in string form.
</div><div class="SIntrapara"><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">uncaught exception: "ssh binary not found"</span></p></td></tr></table></blockquote></div></p></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._racket-path))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._racket-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">racket-path</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns the path to the currently executing Racket binary on the local system.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._build-distributed-launch-path))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._build-distributed-launch-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">build-distributed-launch-path</a></span></span><span class="hspace"> </span><span class="RktVar">collects-path</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">collects-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._path-string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path-string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the path to the distributed places launch file.
The function can take an optional argument specifying the path to the collects directory.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._spawn-node-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawn-node-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hostname</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:ssh-bin-path</span><span class="hspace"> </span><span class="RktVar">ssh-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">launcher-path</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">hostname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">racket-path</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ssh-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">string-path?</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._ssh-bin-path%29%29" class="RktValLink" data-pltdoc="x">ssh-bin-path</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">launcher-path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym">string-path?</span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-%7E3estring%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">path->string</a></span><span class="hspace"> </span><span class="RktSym">distributed-launch-path</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Spawns a node in the background using a Racket thread and returns a channel that becomes ready with a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-node~25%29%29" class="RktValLink" data-pltdoc="x">remote-node%</a></span>
once the node has spawned successfully</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._spawn-nodes/join))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-nodes%2Fjoin%29%29" class="RktValDef RktValLink" data-pltdoc="x">spawn-nodes/join</a></span></span><span class="hspace"> </span><span class="RktVar">nodes-descs</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">nodes-descs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Spawns a list of nodes by calling <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">x</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=procedures.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._apply%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">apply</a></span><span class="stt"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=procedures.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._keyword-apply%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">keyword-apply</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._spawn-node-at%29%29" class="RktValLink" data-pltdoc="x">spawn-node-at</a></span><span class="stt"> </span><span class="RktSym">x</span><span class="RktPn">)</span><span class="RktPn">)</span> for each node description in
<span class="RktVar">nodes-descs</span> and then waits for each node to spawn.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._*channel-put))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-put%29%29" class="RktValDef RktValLink" data-pltdoc="x">*channel-put</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span><span class="RktVar">msg</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">ch</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">msg</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sends <span class="RktVar">msg</span> over <span class="RktVar">ch</span> channel.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._*channel-get))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel-get%29%29" class="RktValDef RktValLink" data-pltdoc="x">*channel-get</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">ch</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Returns a message received on <span class="RktVar">ch</span> channel.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._*channel~3f))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">*channel?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is one of <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span>,
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span>, or <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span><span class="RktPn">)</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._send-new-place-channel-to-named-dest))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._send-new-place-channel-to-named-dest%29%29" class="RktValDef RktValLink" data-pltdoc="x">send-new-place-channel-to-named-dest</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">ch</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">src-id</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">dest-list</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="RktValLink" data-pltdoc="x">*channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">src-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dest-list</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Creates and returns a new place channel connection to a named place at <span class="RktVar">dest-list</span>.
The <span class="RktVar">dest-list</span> argument is a list of a remote-hostname remote-port and named-place name.
The channel <span class="RktVar">ch</span> should be a connection to a <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._message-router%29%29" class="RktValLink" data-pltdoc="x">message-router</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._mr-spawn-remote-node))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-spawn-remote-node%29%29" class="RktValDef RktValLink" data-pltdoc="x">mr-spawn-remote-node</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">mrch</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">host</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">listen-port</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:solo</span><span class="hspace"> </span><span class="RktVar">solo</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mrch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="RktValLink" data-pltdoc="x">*channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">host</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">solo</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Sends a message to a message router over <span class="RktVar">mrch</span> channel asking the message router to spawn a new node
at <span class="RktVar">host</span> listening on port <span class="RktVar">listen-port</span>. If the <span class="RktPn">#:solo</span> keyword argument is supplied
the new node is not folded into the complete network with other nodes in the distributed system.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._mr-supervise-named-dynamic-place-at))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-supervise-named-dynamic-place-at%29%29" class="RktValDef RktValLink" data-pltdoc="x">mr-supervise-named-dynamic-place-at</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">mrch</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">dest</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">path</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">func</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mrch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="RktValLink" data-pltdoc="x">*channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">func</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sends a message to a message router over <span class="RktVar">mrch</span> channel asking the message router to spawn
a named place at <span class="RktVar">dest</span> named <span class="RktVar">name</span>. The place is spawned at the remote node by calling
dynamic place with module-path <span class="RktVar">path</span> and function <span class="RktVar">func</span>. The <span class="RktVar">dest</span> parameter should be a
list of remote-hostname and remote-port.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._mr-connect-to))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._mr-connect-to%29%29" class="RktValDef RktValLink" data-pltdoc="x">mr-connect-to</a></span></span><span class="hspace"> </span><span class="RktVar">mrch</span><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span><span class="RktVar">name</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mrch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._%2Achannel~3f%29%29" class="RktValLink" data-pltdoc="x">*channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sends a message to a message router over <span class="RktVar">mrch</span> channel asking the message router to create a new
connection to the named place named <span class="RktVar">name</span> at <span class="RktVar">dest</span>.
The <span class="RktVar">dest</span> parameter should be a list of remote-hostname and remote-port.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._start-message-router/thread))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._start-message-router%2Fthread%29%29" class="RktValDef RktValLink" data-pltdoc="x">start-message-router/thread</a></span></span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktPn">#:listen-port</span><span class="hspace"> </span><span class="RktVar">listen-port</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:nodes</span><span class="hspace"> </span><span class="RktVar">nodes</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=threads.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._thread%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">thread?</a></span></td><td><span class="hspace"> </span></td><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">listen-port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">nodes</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Starts a message router in a Racket thread connected to <span class="RktVar">nodes</span>, listening on port <span class="RktVar">listen-port</span>, and
returns a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=channel.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">channel?</a></span> connection to the message router.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._port-no~3f))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">port-no?</a></span></span><span class="hspace"> </span><span class="RktVar">no</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">no</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._and%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._integer-in%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">integer-in</a></span><span class="hspace"> </span><span class="RktVal">0</span><span class="hspace"> </span><span class="RktVal">65535</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">no</span> is a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span> between <span class="RktVal">0</span> and <span class="RktVal">65535</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._.D.E.F.A.U.L.T-.R.O.U.T.E.R-.P.O.R.T%29%29" class="RktValDef RktValLink" data-pltdoc="x">DEFAULT-ROUTER-PORT</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">The default port for distributed places message router.</div></p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>class</p></div></div><p class="RForeground"><a name="(def._((lib._racket/place/distributed..rkt)._named-place-typed-channel~25))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValDef RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objectutils.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._class%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">class?</a></span></p></blockquote></td></tr><tr><td><p><span class="hspace"> </span>superclass:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=createclass.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._object%7E25%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">object%</a></span></p></td></tr></table></div><div class="SIntrapara"><blockquote class="leftindent"><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>constructor</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(constructor._((lib._racket/place/distributed..rkt)._named-place-typed-channel~25))"></a><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=objcreation.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._new%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">new</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">ch</span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">]</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktVar">ch</span> argument is a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel</a></span>.
</div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>method</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=ivaraccess.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fclass-internal..rkt%2529._send%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktVar">a-named-place-typed-channel</span><span class="hspace"> </span><a name="(meth._(((lib._racket/place/distributed..rkt)._named-place-typed-channel~25)._get))"></a><span class="RktSym"><a href="#%28meth._%28%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29._get%29%29" class="RktValDef RktValLink" data-pltdoc="x">get</a></span><span class="hspace"> </span><span class="RktVar">type</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">type</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the first message received on <span class="RktSym">ch</span> that has the type <span class="RktVar">type</span>. Messages are lists and their type is the first
item of the list which should be a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span>. Messages of other types that are received are queued for later <span class="RktSym">get</span> requests.</div><div class="SIntrapara"></div></p></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._tc-get))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._tc-get%29%29" class="RktValDef RktValLink" data-pltdoc="x">tc-get</a></span></span><span class="hspace"> </span><span class="RktVar">type</span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">type</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Gets a message of type <span class="RktVar">type</span> from the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span> <span class="RktVar">ch</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._write-flush))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._write-flush%29%29" class="RktValDef RktValLink" data-pltdoc="x">write-flush</a></span></span><span class="hspace"> </span><span class="RktVar">datum</span><span class="hspace"> </span><span class="RktVar">port</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">datum</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">port</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Writes <span class="RktVar">datum</span> to <span class="RktVar">port</span> and then flushes <span class="RktVar">port</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._printf/f))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._printf%2Ff%29%29" class="RktValDef RktValLink" data-pltdoc="x">printf/f</a></span></span><span class="hspace"> </span><span class="RktVar">format</span><span class="hspace"> </span><span class="RktVar">args</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">format</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">args</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Calls <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._printf%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">printf</a></span> followed by a call to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-buffers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._flush-output%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">flush-output</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed..rkt)._displayln/f))"></a><span title="Provided from: racket/place/distributed | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._displayln%2Ff%29%29" class="RktValDef RktValLink" data-pltdoc="x">displayln/f</a></span></span><span class="hspace"> </span><span class="RktVar">item</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">item</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Calls <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._displayln%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">displayln</a></span> followed by a call to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-buffers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._flush-output%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">flush-output</a></span>.</div></p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._write-flush%29%29" class="RktValLink" data-pltdoc="x">write-flush</a></span><span class="hspace"> </span><span class="RktVal">"Hello World"</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktOut">"Hello World"</span></p></td></tr></table></blockquote></div></p><h3 x-source-module="(lib "scribblings/distributed-places/distributed-places.scrbl")" x-source-pkg="distributed-places-doc" x-part-tag=""Define_Remote_Server"">1<tt> </tt><a name="(part._.Define_.Remote_.Server)"></a><a name="(mod-path._racket/place/define-remote-server)"></a>Define Remote Server</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left" colspan="2"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._racket%2Fplace%2Fdefine-remote-server%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/place/define-remote-server</span></a><span class="RktPn">)</span></td></tr><tr><td align="left"> </td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">distributed-places-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/define-remote-server..rkt)._define-remote-server))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">define-remote-server</a></span></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktVar">name</span><span class="hspace"> </span><span class="RktVar">identifier?</span><span class="RktPn">]</span><span class="hspace"> </span><span class="RktVar">rpc-forms</span><span class="hspace"> </span><span class="RktMeta">...+</span><span class="RktPn">)</span></p></blockquote></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/define-remote-server..rkt)._define-named-remote-server))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">define-named-remote-server</a></span></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktVar">name</span><span class="hspace"> </span><span class="RktVar">identifier?</span><span class="RktPn">]</span><span class="hspace"> </span><span class="RktVar">rpc-forms</span><span class="hspace"> </span><span class="RktMeta">...+</span><span class="RktPn">)</span></p></blockquote></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-remote-server</a></span> and <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span> forms
are nearly identical. The <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-remote-server</a></span> form should be used
with <span class="RktSym">supervise-dynamic-place-at</span> to build a private rpc server, while
the <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span> form should be used with
<span class="RktSym">supervise-named-dynamic-place-at</span> to build a rpc server inside a named
place.</div></p><p>The <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span> form takes an identifier and a
list of custom expressions as its arguments. From the identifier a
function is created by prepending the <span class="stt">make-</span> prefix. This
procedure takes a single argument a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel</a></span>. In the
example below, the <span class="RktSym">make-tuple-server</span> identifier is the
<span class="RktSym">place-function-name</span> given to the
<span class="RktSym">supervise-named-dynamic-place-at</span> form to spawn an rpc server.
The server created by the <span class="RktSym">make-tuple-server</span> procedure sits in
a loop waiting for rpc requests from the <span class="RktSym">define-rpc</span> functions
documented below.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/define-remote-server..rkt)._define-state))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><span class="RktSymDef RktSym">define-state</span></span></span><span class="hspace"> </span><span class="RktVar">id</span><span class="hspace"> </span><span class="RktVar">value</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Expands to a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span>, which is closed over by the <span class="RktSym">define-rpc</span> functions
to form local state.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/define-remote-server..rkt)._define-rpc))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><span class="RktSymDef RktSym">define-rpc</span></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">id</span><span class="hspace"> </span><span class="RktVar">args</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVar">body</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Expands to a client rpc function <span class="stt">name-id</span> which sends <span class="RktVar">id</span> and <span class="RktVar">args</span><span class="stt"> </span><span class="RktMeta"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stx-patterns.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fstxcase-scheme..rkt%2529._......%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">...</a></span> to
the rpc server <span class="RktSym">rpc-place</span> and waits for a response.
<span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">name-id</span><span class="stt"> </span><span class="RktSym">rpc-place</span><span class="stt"> </span><span class="RktVar">args</span><span class="stt"> </span><span class="RktMeta"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stx-patterns.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fstxcase-scheme..rkt%2529._......%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">...</a></span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVar">body</span><span class="RktPn">)</span></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._racket/place/define-remote-server..rkt)._define-cast))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><span class="RktSymDef RktSym">define-cast</span></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVar">id</span><span class="hspace"> </span><span class="RktVar">args</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVar">body</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Expands to a client rpc function <span class="stt">name-id</span> which sends <span class="RktVar">id</span> and <span class="RktVar">args</span><span class="stt"> </span><span class="RktMeta"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stx-patterns.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fstxcase-scheme..rkt%2529._......%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">...</a></span> to
the rpc server <span class="RktSym">rpc-place</span> but does not receive any response. A cast is a one-way communication
technique.
<span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">name-id</span><span class="stt"> </span><span class="RktSym">rpc-place</span><span class="stt"> </span><span class="RktVar">args</span><span class="stt"> </span><span class="RktMeta"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stx-patterns.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fstxcase-scheme..rkt%2529._......%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">...</a></span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVar">body</span><span class="RktPn">)</span></div></p><p>The
<span class="RktSym">define-state</span> custom form translates into a simple
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span> form, which is closed over by the <span class="RktSym">define-rpc</span>
forms.</p><p>The <span class="RktSym">define-rpc</span> form is expanded into two parts. The first
part is the client stubs that call the rpc functions. The client
function name is formed by concatenating the
<span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span> identifier, <span class="stt">tuple-server</span>,
with the RPC function name <span class="stt">set</span> to form <span class="RktSym">tuple-server-set</span>.
The RPC client functions take a destination argument which is a
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._remote-connection~25%29%29" class="RktValLink" data-pltdoc="x">remote-connection%</a></span> descriptor and then the RPC function
arguments. The RPC client function sends the RPC function name,
<span class="RktSym">set</span>, and the RPC arguments to the destination by calling an
internal function <span class="RktSym">named-place-channel-put</span>. The RPC client
then calls <span class="RktSym">named-place-channel-get</span> to wait for the RPC
response.</p><p>The second expansion part of <span class="RktSym">define-rpc</span> is the server
implementation of the RPC call. The server is implemented by a match
expression inside the <span class="RktSym">make-tuple-server</span> function. The match
clause for <span class="RktSym">tuple-server-set</span> matches on messages beginning
with the <span class="RktVal">'</span><span class="RktVal">set</span> symbol. The server executes the RPC call with
the communicated arguments and sends the result back to the RPC
client.</p><p>The <span class="RktSym">define-cast</span> form is similar to the <span class="RktSym">define-rpc</span> form
except there is no reply message from the server to client</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">module</a></span><span class="hspace"> </span><span class="RktSym">tuple-server-example</span><span class="hspace"> </span><span class="RktSym">racket/base</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="hspace"> </span><span class="RktSym">racket/match</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">racket/place/define-remote-server</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span><span class="hspace"> </span><span class="RktSym">tuple-server</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-state</span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._make-hash%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-rpc</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">set</span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-set%2521%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-set!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-rpc</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">get</span><span class="hspace"> </span><span class="RktSym">k</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-ref%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-ref</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-cast</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">hello</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._printf%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">printf</a></span><span class="hspace"> </span><span class="RktVal">"Hello from define-cast\n"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-buffers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._flush-output%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">flush-output</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div></p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">module</a></span><span class="hspace"> </span><span class="RktSym">bank-server-example</span><span class="hspace"> </span><span class="RktSym">racket/base</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="hspace"> </span><span class="RktSym">racket/match</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">racket/place/define-remote-server</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-remote-server</a></span><span class="hspace"> </span><span class="RktSym">bank</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-state</span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._make-hash%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-rpc</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">new-account</span><span class="hspace"> </span><span class="RktSym">who</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">match</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmore-scheme..rkt%2529._hash-has-key%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-has-key?</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktVal">#t</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">already-exists</span><span class="RktVal">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._else%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">else</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-set%2521%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-set!</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktVal">0</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">created</span><span class="hspace"> </span><span class="RktSym">who</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-rpc</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Flist..rkt%2529._remove%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">remove</a></span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktSym">amount</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._cond%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">cond</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-ref%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-ref</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._%7E3d%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">=></a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">balance</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._cond%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">cond</a></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=generic-numbers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._%7E3c%7E3d%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x"><=</a></span><span class="hspace"> </span><span class="RktSym">amount</span><span class="hspace"> </span><span class="RktSym">balance</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=generic-numbers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._-%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x"><span class="nobreak">-</span></a></span><span class="hspace"> </span><span class="RktSym">balance</span><span class="hspace"> </span><span class="RktSym">amount</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-set%2521%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-set!</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">ok</span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="RktPn">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._else%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">else</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">insufficient-funds</span><span class="hspace"> </span><span class="RktSym">balance</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._else%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">else</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">invalid-account</span><span class="hspace"> </span><span class="RktSym">who</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-rpc</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">add</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktSym">amount</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._cond%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">cond</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-ref%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-ref</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._%7E3d%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">=></a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">balance</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=generic-numbers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._%252B%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">+</a></span><span class="hspace"> </span><span class="RktSym">balance</span><span class="hspace"> </span><span class="RktSym">amount</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash-set%2521%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash-set!</a></span><span class="hspace"> </span><span class="RktSym">accounts</span><span class="hspace"> </span><span class="RktSym">who</span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">ok</span><span class="hspace"> </span><span class="RktSym">new-balance</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._else%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">else</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">invalid-account</span><span class="hspace"> </span><span class="RktSym">who</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/define-remote-server..rkt)._log-to-parent))"></a><span title="Provided from: racket/place/define-remote-server | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._log-to-parent%29%29" class="RktValDef RktValLink" data-pltdoc="x">log-to-parent</a></span></span><span class="hspace"> </span><span class="RktVar">msg</span><span class="hspace"> </span>[<span class="RktPn">#:severity</span><span class="hspace"> </span><span class="RktVar">severity</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">msg</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">severity</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">info</span></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._log-to-parent%29%29" class="RktValLink" data-pltdoc="x">log-to-parent</a></span> procedure can be used inside a
<span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-remote-server</a></span> or <span class="RktSym"><a href="#%28form._%28%28lib._racket%2Fplace%2Fdefine-remote-server..rkt%29._define-named-remote-server%29%29" class="RktStxLink" data-pltdoc="x">define-named-remote-server</a></span> form to
send a logging message to the remote owner of the rpc server.</div></p><h3 x-source-module="(lib "scribblings/distributed-places/distributed-places.scrbl")" x-source-pkg="distributed-places-doc" x-part-tag=""Async_Bidirectional_Channels"">2<tt> </tt><a name="(part._.Async_.Bidirectional_.Channels)"></a><a name="(mod-path._racket/place/private/async-bi-channel)"></a>Async Bidirectional Channels</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left" colspan="2"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._racket%2Fplace%2Fprivate%2Fasync-bi-channel%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/place/private/async-bi-channel</span></a><span class="RktPn">)</span></td></tr><tr><td align="left"> </td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">base</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/private/async-bi-channel..rkt)._make-async-bi-channel))"></a><span title="Provided from: racket/place/private/async-bi-channel | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._make-async-bi-channel%29%29" class="RktValDef RktValLink" data-pltdoc="x">make-async-bi-channel</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Creates and returns an opaque structure, which is the async bidirectional channel.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/private/async-bi-channel..rkt)._async-bi-channel~3f))"></a><span title="Provided from: racket/place/private/async-bi-channel | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">async-bi-channel?</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A predicate that returns <span class="RktVal">#t</span> for async bidirectional channels.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/private/async-bi-channel..rkt)._async-bi-channel-get))"></a><span title="Provided from: racket/place/private/async-bi-channel | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel-get%29%29" class="RktValDef RktValLink" data-pltdoc="x">async-bi-channel-get</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the next available message from the async bidirectional channel <span class="RktVar">ch</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/private/async-bi-channel..rkt)._async-bi-channel-put))"></a><span title="Provided from: racket/place/private/async-bi-channel | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel-put%29%29" class="RktValDef RktValLink" data-pltdoc="x">async-bi-channel-put</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span><span class="RktVar">msg</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fprivate%2Fasync-bi-channel..rkt%29._async-bi-channel~3f%29%29" class="RktValLink" data-pltdoc="x">async-bi-channel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">msg</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sends message <span class="RktVar">msg</span> to the remote end of the async bidirectional channel <span class="RktVar">ch</span>.</div></p><h3 x-source-module="(lib "scribblings/distributed-places/distributed-places.scrbl")" x-source-pkg="distributed-places-doc" x-part-tag=""distributed-places-MPI"">3<tt> </tt><a name="(part._distributed-places-.M.P.I)"></a><a name="(mod-path._racket/place/distributed/rmpi)"></a>Distributed Places MPI</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left" colspan="2"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._racket%2Fplace%2Fdistributed%2Frmpi%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/place/distributed/rmpi</span></a><span class="RktPn">)</span></td></tr><tr><td align="left"> </td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">distributed-places-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><p class="RForeground"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span><span class="stt"> </span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-comm-channels))"></a><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-comm-cnt))"></a><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-comm-id))"></a><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-comm~3f))"></a><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._struct~3armpi-comm))"></a><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-comm))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-comm</a></span></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">id</span><span class="stt"> </span><span class="RktSym">cnt</span><span class="stt"> </span><span class="RktSym">channels</span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">cnt</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">channels</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=vectors.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._vector%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">vector?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">The communicator struct <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm</a></span> contains the rmpi process
rank <span class="RktSym">id</span>, the quantity of processes in the communicator group,
<span class="RktSym">cnt</span>, and a vector of place-channels, one for each process in
the group.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-id))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-id%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-id</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Takes a rmpi communicator structure, <span class="RktVar">comm</span>, and returns the node id of the RMPI
process.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-cnt))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-cnt%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-cnt</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Takes a rmpi communicator structure, <span class="RktVar">comm</span>, and returns the count of the RMPI
processes in the communicator group.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-send))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-send%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-send</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span><span class="RktVar">val</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">val</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sends <span class="RktVar">val</span> to destination rmpi process number <span class="RktVar">dest</span>
using the RMPI communicator structure <span class="RktVar">comm</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-recv))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-recv%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-recv</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">src</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Receives a message from source rmpi process number <span class="RktVar">src</span>
using the RMPI communicator structure <span class="RktVar">comm</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-init))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-init%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-init</a></span></span><span class="hspace"> </span><span class="RktVar">ch</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">ch</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=places.html%23%2528def._%2528%2528lib._racket%252Fplace..rkt%2529._place-channel%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">place-channel?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Creates the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm</a></span> structure instance using the named
place’s original place-channel <span class="RktVar">ch</span>. In addition to the
communicator structure, <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-init%29%29" class="RktValLink" data-pltdoc="x">rmpi-init</a></span> returns a list of initial
arguments and the original place-channel <span class="RktVar">ch</span> wrapped in a
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span>. The
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span> wrapper allows for the reception
of list messages typed by an initial symbol.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-broadcast))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-broadcast%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-broadcast</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">src</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-broadcast%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-broadcast</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">src</span><span class="hspace"> </span><span class="RktVar">val</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">val</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Broadcasts <span class="RktVar">val</span> from <span class="RktVar">src</span> to all rmpi processes in
the communication group using a hypercube algorithm. Receiving
processes call <span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-broadcast%29%29" class="RktValLink" data-pltdoc="x">rmpi-broadcast</a></span><span class="stt"> </span><span class="RktVar">comm</span><span class="stt"> </span><span class="RktVar">src</span><span class="RktPn">)</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-reduce))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-reduce%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-reduce</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span><span class="RktVar">op</span><span class="hspace"> </span><span class="RktVar">val</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dest</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">op</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=procedures.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._procedure%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">procedure?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">val</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Reduces <span class="RktVar">val</span> using the <span class="RktVar">op</span> operator to <span class="RktVar">dest</span>
rmpi node using a hypercube algorithm.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-barrier))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-barrier%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-barrier</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Introduces a synchronization barrier for all rmpi processes in the
communcication group <span class="RktVar">comm</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-allreduce))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-allreduce%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-allreduce</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">op</span><span class="hspace"> </span><span class="RktVar">val</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">op</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=procedures.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._procedure%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">procedure?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">val</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Reduces <span class="RktVar">val</span> using the <span class="RktVar">op</span> operator to rmpi node
<span class="RktVal">0</span> and then broadcasts the reduced value to all nodes in the
communication group.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-partition))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-partition%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-partition</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">num</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">num</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Partitions <span class="RktVar">num</span> into <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-cnt%29%29" class="RktValLink" data-pltdoc="x">rmpi-cnt</a></span> equal pieces and
returns the offset and length for the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-id%29%29" class="RktValLink" data-pltdoc="x">rmpi-id</a></span>th piece.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top" colspan="3"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-build-default-config))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-build-default-config%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-build-default-config</a></span></span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVar">racket-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktVar">distributed-launch-path</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:mpi-module</span><span class="hspace"> </span><span class="RktVar">mpi-module</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:mpi-func</span><span class="hspace"> </span><span class="RktVar">mpi-func</span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:mpi-args</span><span class="hspace"> </span><span class="RktVar">mpi-args</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">racket-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">distributed-launch-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mpi-module</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mpi-func</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">mpi-args</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Builds a hash from keywords to keyword arguments for use with the
<span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValLink" data-pltdoc="x">rmpi-launch</a></span><span class="stt"> </span><span class="RktSym">function</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-launch))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-launch</a></span></span><span class="hspace"> </span><span class="RktVar">default-node-config</span><span class="hspace"> </span><span class="RktVar">config</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">default-node-config</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=hashtables.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._hash%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">hash?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">config</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._list%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._port-no~3f%29%29" class="RktValLink" data-pltdoc="x">port-no?</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Launches distributed places nodes running <span class="RktPn">#:mpi-func</span> in
<span class="RktPn">#:mpi-module</span> with <span class="RktPn">#:mpi-args</span>. The config is a
list of node configs, where each node config consists of a hostname,
port, named place symbol and rmpi id number, followed by and
optional hash of keyword <span class="RktPn">#:racket-path</span>,
<span class="RktPn">#:distributed-launch-path</span>, <span class="RktPn">#:mpi-module</span>,
<span class="RktPn">#:mpi-func</span>, and <span class="RktPn">#:mpi-args</span> to keyword arguments.
Missing optional keyword arguments will be taken from the
<span class="RktVar">default-node-config</span> hash of keyword arguments.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/place/distributed/rmpi..rkt)._rmpi-finish))"></a><span title="Provided from: racket/place/distributed/rmpi | Package: distributed-places-lib"><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-finish%29%29" class="RktValDef RktValLink" data-pltdoc="x">rmpi-finish</a></span></span><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span><span class="RktVar">tc</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comm</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-comm~3f%29%29" class="RktValLink" data-pltdoc="x">rmpi-comm?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">tc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Object_and_Class_Contracts.html%23%2528def._%2528%2528lib._racket%252Fclass..rkt%2529._is-a%7E3f%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">is-a?/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._named-place-typed-channel~25%29%29" class="RktValLink" data-pltdoc="x">named-place-typed-channel%</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Rendezvous with the <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValLink" data-pltdoc="x">rmpi-launch</a></span>, using the <span class="RktVar">tc</span>
returned by <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValLink" data-pltdoc="x">rmpi-launch</a></span>, to indicate that the RMPI module
is done executing and that <span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValLink" data-pltdoc="x">rmpi-launch</a></span> can return control
to its caller.</div></p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-launch%29%29" class="RktValLink" data-pltdoc="x">rmpi-launch</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed%2Frmpi..rkt%29._rmpi-build-default-config%29%29" class="RktValLink" data-pltdoc="x">rmpi-build-default-config</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:racket-path</span><span class="hspace"> </span><span class="RktVal">"/tmp/mplt/bin/racket"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:distributed-launch-path</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._racket%2Fplace%2Fdistributed..rkt%29._build-distributed-launch-path%29%29" class="RktValLink" data-pltdoc="x">build-distributed-launch-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"/tmp/mplt/collects"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:mpi-module</span><span class="hspace"> </span><span class="RktVal">"/tmp/mplt/kmeans.rkt"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:mpi-func</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">kmeans-place</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:mpi-args</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">"/tmp/mplt/color100.bin"</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="hspace"> </span><span class="RktVal">100</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">9</span><span class="hspace"> </span><span class="RktVal">10</span><span class="hspace"> </span><span class="RktVal">1e-07</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">"nodea.example.com"</span><span class="hspace"> </span><span class="RktVal">6340</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">kmeans_0</span><span class="hspace"> </span><span class="RktVal">0</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">"nodeb.example.com"</span><span class="hspace"> </span><span class="RktVal">6340</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">kmeans_1</span><span class="hspace"> </span><span class="RktVal">1</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">"nodec.example.com"</span><span class="hspace"> </span><span class="RktVal">6340</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">kmeans_2</span><span class="hspace"> </span><span class="RktVal">2</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">"noded.example.com"</span><span class="hspace"> </span><span class="RktVal">6340</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">kmeans_3</span><span class="hspace"> </span><span class="RktVal">3</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div></p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.7", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">up</a> <span class="nonavigation">next →</span></span> </div></div></div><div id="contextindicator"> </div></body></html>
|