[racket] Web server
On Jul 17, 2014, at 1:26 PM, Matthew Flatt wrote:
>> Is that not the case with Places? If so, what was the rationale in not
>> utilizing copy-on-write?
>
> Do you mean copy-on-write via processes and fork(), or somehow by
> itself?
Yes, separate processes w/ separate virtual memory but sharing some physical pages until they get written to. I assume a large chunk of the runtime is read-only, so it seems that could save a lot of resident memory.
> We wanted to avoid multiple processes because OSes don't provide great
> facilities for managing them and communicating between them.
Maybe I'm confused. I thought creating a new Place involved creating a new process with the Racket VM, to run in parallel (potentially on a different core) with the original process. Is the "new Racket instance" running in the same process as the original? That's how I read the following:
"The place form creates a place, which is effectively a new Racket instance that can run in parallel to other places, including the initial place. "
Maybe wording like "which is effectively" leaves too much to the imagination. Do Places run in OS scheduled threads?