On Tue, Mar 29, 2011 at 9:38 AM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > At Tue, 29 Mar 2011 08:46:06 -0400, Sam Tobin-Hochstadt wrote: >> I just meant that >> >> (sync (future (lambda () ...))) >> >> should be the same as >> >> (touch (future (lambda () ...))) >> >> or is that hard for future-safety reasons as well? > > I'm not convinced that it makes sense. When you create a future, > there's no guarantee that the future's thunk will run concurrently with > the main computation (i.e., a future may provide parallelism, but it's > not intended for concurrency). So, if you simply `sync' on the future's > completion, it won't necessarily ever complete, because no one is > necessarily demanding the result.
Spending a little more time with docs for all of the events, I think I was misled by the fact that (sync ch), for some channel `ch', behaves like (channel-get ch). However, none of the other values that are events are like that, so it might not make sense for `future'. -- sam th sa...@ccs.neu.edu _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev