-----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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users