[racket-dev] Making --enable -places the default.
On Tue, Mar 29, 2011 at 9:38 AM, Matthew Flatt <mflatt at 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
samth at ccs.neu.edu