[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Creating closures (or not)
 
- From: Roberto Ierusalimschy <roberto@...>
 
- Date: Tue, 13 Jul 2010 10:12:56 -0300
 
> On Tue, Jul 13, 2010 at 09:04:35AM -0300, Roberto Ierusalimschy wrote:
> > > My guess is that they would only be pooled if they share the same prototype,
> > > and do not use any upvalues, such as:
> > > 
> > > t = {}
> > > for i = 1, 10 do
> > >   t[i] = function() end
> > > end
> > 
> > They may be reused even with upvalues, as long as they have the same
> > upvalues; each prototype caches the last closure created with it.
> 
> Presumably this cache is weak?  Otherwise you could create a really nasty GC
> leak.
Sure it is weak, or "weak weak". (In some cases it may clear the cache
even when the closure is not collected.)
-- Roberto
- References:
- Re: Creating closures (or not), Peter Cawley
 
- Re: Creating closures (or not), Geoff Leyland
 
- Re: Creating closures (or not), Javier Guerra Giraldez
 
- Re: Creating closures (or not), Geoff Leyland
 
- Re: Creating closures (or not), Pierre-Yves Gérardy
 
- Re: Creating closures (or not), Roberto Ierusalimschy
 
- Re: Creating closures (or not), Duncan Cross
 
- Re: Creating closures (or not), Kristofer Karlsson
 
- Re: Creating closures (or not), Roberto Ierusalimschy
 
- Re: Creating closures (or not), Daniel Silverstone