diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-05-12 10:22:26 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-05-12 10:22:26 -0700 |
commit | cdf2822743b3beeb37ebc3deea8e08b6130698c5 (patch) | |
tree | b7946314d79e8df95eb16703b65832e20f7ee620 /html/092socket.mu.html | |
parent | bd222553d7bc7d91d3eebae5639b01f58c8f7c75 (diff) | |
download | mu-cdf2822743b3beeb37ebc3deea8e08b6130698c5.tar.gz |
4242 - get rid of refcounts entirely
We're going to lean back into the experiment of commit 4179 back in Jan. If we delete memory it's up to us to ensure no pointers into it survive. Since deep-copy depends on our refcounting infrastructure, it's gone as well. So we're going to have to start watching out for pointers shared over channels.
Diffstat (limited to 'html/092socket.mu.html')
-rw-r--r-- | html/092socket.mu.html | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/html/092socket.mu.html b/html/092socket.mu.html index 427daf3d..c4f4b080 100644 --- a/html/092socket.mu.html +++ b/html/092socket.mu.html @@ -75,8 +75,8 @@ if ('onhashchange' in window) { <span id="L14" class="LineNr"> 14 </span><span class="Constant">F - example-server-test: $open-server-socket failed]</span> <span id="L15" class="LineNr"> 15 </span> handler-routine:number <span class="Special"><-</span> <span class="muControl">start-running</span> <a href='092socket.mu.html#L55'>serve-one-request</a> socket, <a href='092socket.mu.html#L26'>example-handler</a> <span id="L16" class="LineNr"> 16 </span> ] -<span id="L17" class="LineNr"> 17 </span> <a href='075channel.mu.html#L43'>source</a>:&:<a href='075channel.mu.html#L43'>source</a>:char <span class="Special"><-</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <span class="Constant">0/real-resources</span>, <span class="Constant">[localhost/]</span>, port -<span id="L18" class="LineNr"> 18 </span> response:text <span class="Special"><-</span> <a href='075channel.mu.html#L507'>drain</a> <a href='075channel.mu.html#L43'>source</a> +<span id="L17" class="LineNr"> 17 </span> <a href='075channel.mu.html#L36'>source</a>:&:<a href='075channel.mu.html#L36'>source</a>:char <span class="Special"><-</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <span class="Constant">0/real-resources</span>, <span class="Constant">[localhost/]</span>, port +<span id="L18" class="LineNr"> 18 </span> response:text <span class="Special"><-</span> <a href='075channel.mu.html#L499'>drain</a> <a href='075channel.mu.html#L36'>source</a> <span id="L19" class="LineNr"> 19 </span> 10:@:char/<span class="Special">raw</span> <span class="Special"><-</span> copy *response <span id="L20" class="LineNr"> 20 </span> memory-should-contain [ <span id="L21" class="LineNr"> 21 </span> 10:array:character <span class="Special"><-</span> <span class="Constant">[abc]</span> @@ -101,9 +101,9 @@ if ('onhashchange' in window) { <span id="L40" class="LineNr"> 40 </span> ] <span id="L41" class="LineNr"> 41 </span> ] <span id="L42" class="LineNr"> 42 </span> run [ -<span id="L43" class="LineNr"> 43 </span> <a href='075channel.mu.html#L43'>source</a>:&:<a href='075channel.mu.html#L43'>source</a>:char <span class="Special"><-</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <a href='088file.mu.html#L11'>resources</a>, <span class="Constant">[example.com/]</span> +<span id="L43" class="LineNr"> 43 </span> <a href='075channel.mu.html#L36'>source</a>:&:<a href='075channel.mu.html#L36'>source</a>:char <span class="Special"><-</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <a href='088file.mu.html#L11'>resources</a>, <span class="Constant">[example.com/]</span> <span id="L44" class="LineNr"> 44 </span> ] -<span id="L45" class="LineNr"> 45 </span> contents:text <span class="Special"><-</span> <a href='075channel.mu.html#L507'>drain</a> <a href='075channel.mu.html#L43'>source</a> +<span id="L45" class="LineNr"> 45 </span> contents:text <span class="Special"><-</span> <a href='075channel.mu.html#L499'>drain</a> <a href='075channel.mu.html#L36'>source</a> <span id="L46" class="LineNr"> 46 </span> 10:@:char/<span class="Special">raw</span> <span class="Special"><-</span> copy *contents <span id="L47" class="LineNr"> 47 </span> memory-should-contain [ <span id="L48" class="LineNr"> 48 </span> 10:array:character <span class="Special"><-</span> <span class="Constant">[abc</span> @@ -119,15 +119,15 @@ if ('onhashchange' in window) { <span id="L58" class="LineNr"> 58 </span> session:num <span class="Special"><-</span> $accept socket <span id="L59" class="LineNr"> 59 </span> assert session, <span class="Constant">[ </span> <span id="L60" class="LineNr"> 60 </span><span class="Constant">F - example-server-test: $accept failed]</span> -<span id="L61" class="LineNr"> 61 </span> contents:&:<a href='075channel.mu.html#L43'>source</a>:char, <a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char <span class="Special"><-</span> <a href='075channel.mu.html#L51'>new-channel</a><span class="Constant"> 30</span> -<span id="L62" class="LineNr"> 62 </span> <span class="muControl">start-running</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> session, <a href='075channel.mu.html#L47'>sink</a> -<span id="L63" class="LineNr"> 63 </span> query:text <span class="Special"><-</span> <a href='075channel.mu.html#L507'>drain</a> contents +<span id="L61" class="LineNr"> 61 </span> contents:&:<a href='075channel.mu.html#L36'>source</a>:char, <a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char <span class="Special"><-</span> <a href='075channel.mu.html#L44'>new-channel</a><span class="Constant"> 30</span> +<span id="L62" class="LineNr"> 62 </span> <span class="muControl">start-running</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> session, <a href='075channel.mu.html#L40'>sink</a> +<span id="L63" class="LineNr"> 63 </span> query:text <span class="Special"><-</span> <a href='075channel.mu.html#L499'>drain</a> contents <span id="L64" class="LineNr"> 64 </span> response:text <span class="Special"><-</span> call <a href='092socket.mu.html#L53'>request-handler</a>, query <span id="L65" class="LineNr"> 65 </span> <a href='092socket.mu.html#L132'>write-to-socket</a> session, response <span id="L66" class="LineNr"> 66 </span> session <span class="Special"><-</span> $close-socket session <span id="L67" class="LineNr"> 67 </span>] <span id="L68" class="LineNr"> 68 </span> -<span id="L69" class="LineNr"> 69 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <a href='088file.mu.html#L11'>resources</a>:&:<a href='088file.mu.html#L11'>resources</a>, uri:text<span class="muRecipe"> -> </span>contents:&:<a href='075channel.mu.html#L43'>source</a>:char [ +<span id="L69" class="LineNr"> 69 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L69'>start-reading-from-network</a> <a href='088file.mu.html#L11'>resources</a>:&:<a href='088file.mu.html#L11'>resources</a>, uri:text<span class="muRecipe"> -> </span>contents:&:<a href='075channel.mu.html#L36'>source</a>:char [ <span id="L70" class="LineNr"> 70 </span> <span class="Constant">local-scope</span> <span id="L71" class="LineNr"> 71 </span> <span class="Constant">load-inputs</span> <span id="L72" class="LineNr"> 72 </span> <span class="Delimiter">{</span> @@ -147,8 +147,8 @@ if ('onhashchange' in window) { <span id="L86" class="LineNr"> 86 </span> assert socket, <span class="Constant">[contents]</span> <span id="L87" class="LineNr"> 87 </span> req:text <span class="Special"><-</span> <a href='061text.mu.html#L520'>interpolate</a> <span class="Constant">[GET _ HTTP/1.1]</span>, path <span id="L88" class="LineNr"> 88 </span> <a href='092socket.mu.html#L93'>request-socket</a> socket, req -<span id="L89" class="LineNr"> 89 </span> contents:&:<a href='075channel.mu.html#L43'>source</a>:char, <a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char <span class="Special"><-</span> <a href='075channel.mu.html#L51'>new-channel</a><span class="Constant"> 10000</span> -<span id="L90" class="LineNr"> 90 </span> <span class="muControl">start-running</span> <a href='092socket.mu.html#L125'>receive-from-client-socket-and-close</a> socket, <a href='075channel.mu.html#L47'>sink</a> +<span id="L89" class="LineNr"> 89 </span> contents:&:<a href='075channel.mu.html#L36'>source</a>:char, <a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char <span class="Special"><-</span> <a href='075channel.mu.html#L44'>new-channel</a><span class="Constant"> 10000</span> +<span id="L90" class="LineNr"> 90 </span> <span class="muControl">start-running</span> <a href='092socket.mu.html#L125'>receive-from-client-socket-and-close</a> socket, <a href='075channel.mu.html#L40'>sink</a> <span id="L91" class="LineNr"> 91 </span>] <span id="L92" class="LineNr"> 92 </span> <span id="L93" class="LineNr"> 93 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L93'>request-socket</a> socket:num, s:text<span class="muRecipe"> -> </span>socket:num [ @@ -162,7 +162,7 @@ if ('onhashchange' in window) { <span id="L101" class="LineNr">101 </span> $write-to-socket socket, <span class="Constant">10/lf</span> <span id="L102" class="LineNr">102 </span>] <span id="L103" class="LineNr">103 </span> -<span id="L104" class="LineNr">104 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> socket:num, <a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char<span class="muRecipe"> -> </span><a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char, socket:num [ +<span id="L104" class="LineNr">104 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> socket:num, <a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char<span class="muRecipe"> -> </span><a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char, socket:num [ <span id="L105" class="LineNr">105 </span> <span class="Constant">local-scope</span> <span id="L106" class="LineNr">106 </span> <span class="Constant">load-inputs</span> <span id="L107" class="LineNr">107 </span> <span class="Delimiter">{</span> @@ -172,7 +172,7 @@ if ('onhashchange' in window) { <span id="L111" class="LineNr">111 </span> <span class="muControl">break-if</span> error <span id="L112" class="LineNr">112 </span> <span class="Delimiter">{</span> <span id="L113" class="LineNr">113 </span> <span class="muControl">break-unless</span> found? -<span id="L114" class="LineNr">114 </span> <a href='075channel.mu.html#L47'>sink</a> <span class="Special"><-</span> <a href='075channel.mu.html#L67'>write</a> <a href='075channel.mu.html#L47'>sink</a>, c +<span id="L114" class="LineNr">114 </span> <a href='075channel.mu.html#L40'>sink</a> <span class="Special"><-</span> <a href='075channel.mu.html#L60'>write</a> <a href='075channel.mu.html#L40'>sink</a>, c <span id="L115" class="LineNr">115 </span> <span class="Delimiter">}</span> <span id="L116" class="LineNr">116 </span> <span class="Delimiter">{</span> <span id="L117" class="LineNr">117 </span> <span class="muControl">break-if</span> found? @@ -180,13 +180,13 @@ if ('onhashchange' in window) { <span id="L119" class="LineNr">119 </span> <span class="Delimiter">}</span> <span id="L120" class="LineNr">120 </span> <span class="muControl"> loop</span> <span id="L121" class="LineNr">121 </span> <span class="Delimiter">}</span> -<span id="L122" class="LineNr">122 </span> <a href='075channel.mu.html#L47'>sink</a> <span class="Special"><-</span> close <a href='075channel.mu.html#L47'>sink</a> +<span id="L122" class="LineNr">122 </span> <a href='075channel.mu.html#L40'>sink</a> <span class="Special"><-</span> close <a href='075channel.mu.html#L40'>sink</a> <span id="L123" class="LineNr">123 </span>] <span id="L124" class="LineNr">124 </span> -<span id="L125" class="LineNr">125 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L125'>receive-from-client-socket-and-close</a> socket:num, <a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char<span class="muRecipe"> -> </span><a href='075channel.mu.html#L47'>sink</a>:&:<a href='075channel.mu.html#L47'>sink</a>:char, socket:num [ +<span id="L125" class="LineNr">125 </span><span class="muRecipe">def</span> <a href='092socket.mu.html#L125'>receive-from-client-socket-and-close</a> socket:num, <a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char<span class="muRecipe"> -> </span><a href='075channel.mu.html#L40'>sink</a>:&:<a href='075channel.mu.html#L40'>sink</a>:char, socket:num [ <span id="L126" class="LineNr">126 </span> <span class="Constant">local-scope</span> <span id="L127" class="LineNr">127 </span> <span class="Constant">load-inputs</span> -<span id="L128" class="LineNr">128 </span> <a href='075channel.mu.html#L47'>sink</a> <span class="Special"><-</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> socket, <a href='075channel.mu.html#L47'>sink</a> +<span id="L128" class="LineNr">128 </span> <a href='075channel.mu.html#L40'>sink</a> <span class="Special"><-</span> <a href='092socket.mu.html#L104'>receive-from-socket</a> socket, <a href='075channel.mu.html#L40'>sink</a> <span id="L129" class="LineNr">129 </span> socket <span class="Special"><-</span> $close-socket socket <span id="L130" class="LineNr">130 </span>] <span id="L131" class="LineNr">131 </span> |