On Thu, Oct 28, 2010 at 8:12 AM, Charles Forsyth 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