Joshua Burton wrote: Depends on the OS, of course. Threads are useful iff: (1) Coroutines are too small (you can't trust me to yield to you), BUT (2) Processes are too big (you trust me to dance all over your memory). Or (3) We're using a language where you *CAN'T* dance all over my memory. That's Erlang, and that was Concurrent Quintus Prolog.