[Top][All Lists]
[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