[whatwg] Worker lifecycle

On Thu, May 28, 2009 at 7:47 PM, Maciej Stachowiak <mjs at apple.com> wrote:

>
> On May 28, 2009, at 5:17 PM, Ian Hickson wrote:
>
>  On Thu, 28 May 2009, Maciej Stachowiak wrote:
>>
>>> On May 28, 2009, at 1:08 PM, Ian Hickson wrote:
>>>
>>>> On Thu, 28 May 2009, Maciej Stachowiak wrote:
>>>>
>>>>  If so, that seems like it could create unbounded memory leaks in
>>>>> long-running Web applications that use MessagePorts, even if all
>>>>> references to both endpoints of the MessageChannel are dropped. That
>>>>> seems unacceptable to me, unless I misunderstood.
>>>>>
>>>>
>>>> The requirement is actually indistinguishable from the UA using the
>>>> other alternative and just having a really slow garbage collector that
>>>> only runs at page-closing time.
>>>>
>>>
>>> So it's exactly equivalent to the old requirement, except the spec now
>>> specifically points out that you can just leak forever instead. I don't
>>> think that addresses the original concern at all.
>>>
>>
>> I've tweaked the text some to make it clear that once the port is not
>> entangled, it doesn't continue being protected in this way.
>>
>
> The new text seems to be this:
>
> "When a MessagePort object is entangled, user agents must either act as if
> the object has a strong reference to its entangledMessagePort object, or as
> if the MessagePort object's owner has a strong reference to the MessagePort
> object"
>
> It seems to me this allows the following case: two message ports A and B
> are entangled. A is treated as having a strong reference to B, but is not
> treated as if its owner has a strong reference to it. However, B is not
> treated as having a strong reference to A, but is treated as if its owner
> has a strong reference to it. Is that intended? I think this behavior would
> be practically implementable and quite useful in many cases, even though it
> is asymmetric. But I am not sure if the text intended to allow it.


Can you elaborate on this a bit? Where would this asymmetric behavior be
useful? It seems like in the specific case you cite, B would be
doubly-referenced, while A would be unreferenced.


>
>
> Regards,
> Maciej
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090529/2e31a249/attachment.htm>

Received on Friday, 29 May 2009 11:29:39 UTC