Re: Sync API for workers

On Tue, Sep 4, 2012 at 3:11 PM, Ian Hickson <ian@hixie.ch> wrote:

> On Mon, 3 Sep 2012, Glenn Maynard wrote:
> >
> > - Add an internal flag to MessagePort, "blocking permitted", which is
> > initially set.
> > - When a MessagePort "port" is transferred from source to dest,
> >     - If source is an ancestor of dest, the "blocking permitted" flag of
> > "port" is cleared.  (This is a "down" transfer.)
>
> You basically can't do this, because by the time you've received the
> message saying that the port is in a permitted scope, the other side of
> the port could have been shunted three times and now be who knows where.
>

There's no message saying that it's permitted; the only possible message is
that it's *no longer* permitted.  Once the that flag is cleared, it's
cleared permanently.  Also see my later message to Jonas, which
reformulates this a bit to put responsibility of triggering the "clear the
flag" behavior on the receiver, rather than the sender of the port, since
while sending is asynchronous (you don't know where a message is going when
you send it), receiving is not (you know where a message is going when you
receive it--to you!--and you can know where it originally came from, since
the sender can tuck that information in the message).

-- 
Glenn Maynard

Received on Tuesday, 4 September 2012 21:11:56 UTC