-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thursday 10 July 2008 18:50:12 you wrote:
> James K. Gruetzner wrote:
> >>>  I'm running Fedora 8, python 2.5.1, and matplotlib 0.91.2-1.fc8  from
> >>> the yum repository.   Backend is set to GTKAgg in my matplotlibrc file.
> >>
> >> (On this list top-posting is frowned upon -- it makes the conversation
> >> difficult to follow.)
> >
> > I understand.  Sorry.  Each list is different:  I'm new here, and will
> > try remember.
>
> No problem.  Also, don't forget reply-to-all, so that the whole of the
> list can chime in here. :)

Arrrgh!!!!  Almost all my other lists have that as default, so I'm out of the 
habit of checking.

> >> Your analysis is correct, the call to show() activates the GUI mainloop
> >> and does not return until the window is closed.  Within ipython there is
> >> some magic that occurs that runs the mainloop in a separate thread.
> >> What do you need to do after the call to show()?

> > In my current situation, I need to extract and display data (images)
> > independently from several different files as part of debugging a larger
> > application.  (I'm really not reading a file into the original array, but
> > running some shell commands using os.popen2(...) to eventually populate
> > the array:  that part works.)    The upshot is that in the course of a
> > few hours, I may have to display (and kill) a large number of images.

> > The current "hang" means that I have an effective memory leak, and I'd
> > have to keep track of Process IDs and manually kill them every so often. 
> > Were the pylab.show() command to return after closing the window
> > (clicking on the X), then a backgrounded or daemon process should
> > terminate.  But it doesn't. This seems to be the same problem causing
> > Dragan S.'s problem.

> > I'm not sure if this is a bug or a feature, but would assuredly like to
> > find a way to kill the leak.

> I'm not sure about the lack of returning after the call show(), though
> it does sound like a bug.  What I *do* know is that multiple calls to
> show() is frowned upon (if not just completely unsupported).  What you
> probably want to look at is the dynamic_image_gtkagg.py example (in the
> examples/ directory).  Since you're already using GtkAgg, it should be
> *really* easy to adapt the example to fit your needs.  I've personally
> adapted it to do a live data display of a simulation run.  

I don't really need any live interaction or a live data display; I just want 
the thang to stop running (i.e., the process to terminate) when the figure 
window is closed.  

Unfortunately, the 
  dynamic_image_gtkagg.py
example has the same problem.  It's final line is "show()".  When run as a 
background process, everything displays well --- but when the window is 
closed (click on X), the process fails to terminate.   So . . . the root 
cause is that show() does not return when the shown image is closed.  

> If you *need* it to wait for user interaction before continuing, there might
> be a little bit more work, but I don't think it'd be much.  You could
> probably instead look at some of the Matplotlib UI widgets, like in the
> buttons.py example.

I really don't need user interaction per se,  I may have to go that route an 
establish some sort of "close window and exit" event.  Hmmm:  another 
learning opportunity . . . .  :-)  

The show() function is defined in
    .../matplotlib/backends/backend_gtk.py
and looks to be calling gtk.main(), which, according to 
   .../gtk-2.0/gtk/__init__.py
appears to be deprecated in favor of mainloop().

And that's as far as I can go in this:  I'm not graphics whiz, and, in fact, 
having reached somewhat beyond my skill level,  can't even figure out how to 
trace the mainloop call back further.  

I would think that the gtk mainloop would terminate when the window closes 
(which termination should propagate back up the stack), but apparently that 
doesn't happen.

> Ryan
>
> --
> Ryan May
> Graduate Research Assistant
> School of Meteorology
> University of Oklahoma

Thanks again for your help thus far.

   James

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFId5ChxOXthSHeGJIRAqj4AKDG8RGxoQYl5va2olVUV2WQ1zjyOQCeImlr
AT+d5Fl2FuF9yWxLaJWbjEg=
=wZPg
-----END PGP SIGNATURE-----


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to