classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cp-patches] [patch] fix memory image source handling in GTK peers


From: Thomas Fitzsimmons
Subject: Re: [cp-patches] [patch] fix memory image source handling in GTK peers
Date: Tue, 26 Jul 2005 16:43:14 -0400

On Tue, 2005-07-26 at 18:31 +0200, Mark Wielaard wrote:
> Hi,
> 
> On Tue, 2005-07-26 at 12:16 -0400, Thomas Fitzsimmons wrote:
> > On Tue, 2005-07-26 at 07:48 +0200, Mark Wielaard wrote:
> > 
> > > I don't think you want to create a (non-daemon) Timer each and every
> > > time here. That means that on each repaint() a new Thread is created
> > > which is never destroyed and which will prevent the application to ever
> > > stop since the Timers will be live. Try to either create a reusable
> > > (daemon) Timer that is used for all repaints. And/Or add a TimerTask to
> > > cancel the Timer after it hasn't been used for a while.
> > 
> > OK, committed the attached patch.
> >
> > --- gnu/java/awt/peer/gtk/GtkComponentPeer.java 26 Jul 2005 01:53:24
> > +++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 26 Jul 2005 16:13:35
> > @@ -85,6 +85,8 @@
> >  
> >    boolean isInRepaint;
> >  
> > +  Timer repaintTimer = new Timer();
> 
> Are you sure you want a non-daemon Timer here?
> Wouldn't that prevent the application from shutting down when the last
> AWT thread dies?

Yes, you're right.  I committed this fix.

Tom

2005-07-26  Thomas Fitzsimmons  <address@hidden>

        * gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make
        daemon thread.

Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.90
diff -u -r1.90 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 26 Jul 2005 16:15:14 -0000      
1.90
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 26 Jul 2005 20:39:42 -0000
@@ -85,7 +85,7 @@
 
   boolean isInRepaint;
 
-  Timer repaintTimer = new Timer();
+  Timer repaintTimer = new Timer (true);
 
   /* this isEnabled differs from Component.isEnabled, in that it
      knows if a parent is disabled.  In that case Component.isEnabled 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]