On Nov 17, 2011, at 6:41 PM, Jonas Sicking <[email protected]> wrote:
> On Thu, Nov 17, 2011 at 6:05 PM, David Levin <[email protected]> wrote:
>>
>>
>> On Thu, Nov 17, 2011 at 5:05 PM, Jonas Sicking <[email protected]> wrote:
>>>
>>> On Thu, Nov 17, 2011 at 2:07 PM, David Levin <[email protected]> wrote:
>>>> It seems like this mechanism would deadlock a worker if two workers send
>>>> each other a synchronous message.
>>>
>>> Indeed. We can only allow child workers to block on parent workers.
>>> Never the other way around.
>>
>> So the api would have to know who is listening to the other end of the port
>> and throw if it isn't a parent?
>
> I'm not convinced that we can do this with ports in a sane manner.
> Only on dedicated workers. There you always know who is listening on
> the other end. I.e. only on the DedicatedWorkerGlobalScope/Worker
> interfaces.
I agree on this one. A big no-thanks to synchronous messaging over ports.
Still, dedicated workers to a parent seems doable.
I've proposed a different worker scope for lightweight threads. Dedicated
workers are relatively heavy and so a few workers blocked on the parent is not
outside of acceptability.
-Charles