<br><br><div class="gmail_quote">On Thu, Nov 3, 2011 at 8:35 AM, Andreas Voellmy <span dir="ltr">&lt;<a href="mailto:andreas.voellmy@gmail.com">andreas.voellmy@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>I just read Kazu Yamamoto&#39;s article on a high performance web server in the latest Monad.Reader, and I came across a statement that doesn&#39;t sound correct to me. He says: </div><div><br></div><div>&quot;When a user thread issues a system call, a context switch occurs. This means that all Haskell user threads stop, and instead the kernel is given the CPU time. &quot;</div>

<div><br></div><div>Is this right? </div></blockquote><div><br></div><div>It is correct in context. Mighttpd does not use the -Nx argument to create multiple OS threads, instead uses a `prefork` model that creates separate processes to balance user invocations. Using multiple processes instead of multiple Haskell threads avoids issues with garbage collection.</div>
<div><br></div><div>Regards,</div><div><br></div><div>Dave</div><div><br></div></div>