Do you know why they decided to go for another 2.7.xx release - I
thought they were going to 2.8 next...?

Cheers, Tim

On Dec 12, 6:26 pm, [email protected] wrote:
> Can do
>
> On 12/12/08, David Pollak <[email protected]> wrote:
>
> > Folks,
>
> > Who has time to do testing, etc. with 2.7.3?
>
> > Thanks,
>
> > David
>
> > ---------- Forwarded message ----------
> > From: Philipp Haller <[email protected]>
> > Date: Fri, Dec 12, 2008 at 6:42 AM
> > Subject: Re: [scala-user] Is there a memory leak in 2.7.2 Actors?
> > To: David Pollak <[email protected]>
> > Cc: scala-user <[email protected]>
>
> > Hi again,
>
> > FYI, I committed a fix in r16750 (2.7.x branch) and r16751 (trunk). It
> > looks like we are probably releasing 2.7.3 including this fix some time
> > next week (or shortly after).
>
> > Cheers,
> > Philipp
>
> > [email protected] wrote:
> >> Hi,
>
> >> I found the memory leak. A fix should be ready shortly.
>
> >> Cheers,
> >> Philipp
>
> >> Quoting David Pollak <[email protected]>:
>
> >>> Folks,
>
> >>> I've been noticing that Lift apps run out of memory after a certain
> >>> period of time.  This is a relatively new thing.  I think I've
> >>> traced the problem back to a memory leak in the Actors library.  The
> >>>  enclosed program terminates with an out of memory error.
>
> >>> Am I failing to release the Actors in some way or is there a memory leak?
>
> >>> Thanks,
>
> >>> David
>
> >>> import scala.actors._
> >>> import Actor._
>
> >>> object ActorWatcher extends Actor {
> >>>   def act = loop {
> >>>     react {
> >>>       case Exit(actor: Actor, why: Throwable) =>
> >>>         failureFuncs.foreach(f => f(actor, why))
> >>>       case x => println(x)
> >>>     }
> >>>   }
>
> >>>   private def startAgain(a: Actor, ignore: Throwable) {a.start}
>
> >>>   private def logActorFailure(actor: Actor, why: Throwable) {
> >>>     println("The ActorWatcher restarted "+actor+" because "+why)
> >>>   }
>
> >>>   /**
> >>>    * If there's something to do in addition to starting the actor
> >>> up, pre-pend the
> >>>    * actor to this List
> >>>    */
> >>>   var failureFuncs: List[(Actor, Throwable) => Unit] = logActorFailure _
> > ::
> >>>   startAgain _ :: Nil
>
> >>>   this.start
> >>>   this.trapExit = true
> >>> }
>
> >>> case object Start
> >>> case object EndMe
>
> >>> class A extends Actor {
> >>> def act = loop {
> >>> react {
> >>> case Start =>
> >>> link(ActorWatcher)
> >>> case EndMe =>
> >>> unlink(ActorWatcher)
> >>> exit()
> >>> }
> >>> }
> >>> }
>
> >>> object Sloth {
> >>> def z(in: Long) = if (in / 1024L == 0L) in
> >>> else if (in / (1024L * 1024L) == 0L) (in / 1024L).toString + "K"
> >>> else (in / (1024L * 1024L)).toString + "M"
> >>> def main(args: Array[String]) {
> >>> val rt = Runtime.getRuntime()
> >>> for (o <- 1 to 1000000) {
> >>> println("Outer "+o)
> >>> //var a: List[Actor] = Nil
> >>>      for (i <- 1 to 10000) {
> >>> val t = new A
> >>> //a = t :: a
> >>> t.start
> >>> t ! Start
> >>> t ! EndMe
> >>> }
> >>> println("Done creating")
> >>> // for (act <- a) act ! EndMe
> >>> ActorGC.gc()
> >>> rt.gc()
> >>> println("Free "+z(rt.freeMemory())+" total "+z(rt.totalMemory()))
> >>> }
> >>> }
> >>> }
>
> >>> --
> >>> Lift, the simply functional web frameworkhttp://liftweb.net
> >>> Collaborative Task Managementhttp://much4.us
> >>> Follow me:http://twitter.com/dpp
> >>> Git some:http://github.com/dpp
>
> > --
> > Lift, the simply functional web frameworkhttp://liftweb.net
> > Collaborative Task Managementhttp://much4.us
> > Follow me:http://twitter.com/dpp
> > Git some:http://github.com/dpp
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to