orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
42 stars 3 forks source link

interaction between isolated regions and logical clocks #13

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Consider this program:

  let(isolated (signal | Ltimer(1) >> println("ISOLATED")))

When the isolated region's parent group terminates, it eventually
terminates the root logical clock so that the Ltimer(1) never responds. It
seems that what needs to happen is that quiescence is tracked independently
of liveness, so that a "dead" region may actually be non-quiescent (if it
contains an isolated region). However this seems incompatible with the
desired behavior of group cells, that when closed the region is instantly
quiescent.

One easy solution would be to have "isolated" introduce a new clock. But
I'd like to avoid this.

A related question is what this program does:

  let(withLtimer(lambda () = isolated (signal | Ltimer(1) >>
println("ISOLATED"))))

Original issue reported on code.google.com by adrianqu...@gmail.com on 17 Apr 2009 at 5:05

GoogleCodeExporter commented 9 years ago

Original comment by adrianqu...@gmail.com on 17 Apr 2009 at 5:07

GoogleCodeExporter commented 9 years ago
r1103 implements the easy solution of having "isolated" introduce a new clock. 
We
still need to understand this problem better.

Original comment by adrianqu...@gmail.com on 17 Apr 2009 at 2:07

GoogleCodeExporter commented 9 years ago
The isolated keyword will be removed in 1.1, and has been supplanted by the 
Site site. In as much as this is an 
issue with the Site site itself, we are addressing it separately in the theory 
of logical time.

Original comment by dkitc...@gmail.com on 19 Feb 2010 at 5:01