On Thu, Oct 28, 2010 at 8:12 AM, Charles Forsyth <fors...@terzarima.net>wrote:

> you're essentially replacing
>        f := open(name, ...)
>        ...
>        close(f)
>
> which runs as a sequential process, and subject to the usual rules for
> sequential
> composition, by
>
>        f := open(name, ...)
>        ...
>        spawn clunk(f)
>
> which introduces a race with an invisible anonymous process with no means
> of synchronisation.
>
> what could possibly go wrong with that?
>
> (actually, it's more complex than spawning a new process, but the added
> complexity of a set of service processes changes the details but not the
> existence of the race, and doesn't affect the anonymity.)
>

Hmm, I don't see the race there; perhaps I'm missing something or being
blind; could you explain?

Also, if that is racy, isn't this at least analogous?

f := Sys->open(name, ...);
... # put f in a cyclic structure
f = nil;
evil_cyclic = nil;
... # wait until an invisible service process closes it, perhaps later?

Thanks,
-- vs

Reply via email to