There are serious restrictions on what the asynchronous function can do
because this facility is implemented by a thread in the same address
space on most platforms (when pthreads is available), but by a pipe to
a forked process otherwise:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>It cannot change the program&#8217;s state (global variables, environment,
etc.) in a way that the caller notices; in other words, .in and .out
are the only communication channels to the caller.</p>
</li>
<