W3C home > Mailing lists > Public > whatwg@whatwg.org > May 2009

[whatwg] Worker lifecycle

From: Ian Hickson <ian@hixie.ch>
Date: Thu, 28 May 2009 20:08:05 +0000 (UTC)
Message-ID: <Pine.LNX.4.62.0905282005290.10857@hixie.dreamhostps.com>
On Thu, 28 May 2009, Maciej Stachowiak wrote:
> I'm assuming this is one of the changes:
> > User agents must either act as if MessagePort objects have a strong 
> > reference to their entangled MessagePort object or as if each 
> > MessagePort object's owner has a strong reference to the MessagePort 
> > object.
> It seems to me the second alternative prevents MessagePorts created by a 
> Window from ever being garbage collected until the user leaves the page. 
> Is that a correct understanding?


> 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.

On Thu, 28 May 2009, Drew Wilson wrote:
> Is your concern that an ill-behaved app could leak ports (since 
> obviously an ill-behaved app could leak ports anyway just by stuffing 
> them in some array), or is it that a well-behaved app can't release 
> ports? Still need to review the new spec in detail, but from previous 
> conversations I'd assumed that calling MessagePort.close() on either end 
> would allow the ports to be freed - perhaps we should clarify the 
> language in the spec to state that the strong reference is only in place 
> for *entangled* ports.

The UA can at any time switch to the other mechanism, which only has a 
strong reference through the entanglement, which basically means that the 
UA can be as aggressive as the UA wants to be.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Thursday, 28 May 2009 13:08:05 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:12 UTC