#147 closing TriD window kills perldl shell

other (94)

Under Cygwin/X11, using the window manager close widget
to exit the PDL::Graphics::TriD window results in the
perldl shell exiting. From reading the PDL Begginnings
book I see that others have observed the same problem
(i.e. it is not specific to the Cygwin porting effort).

I took a look at the glpXNextEvent code in TriD::OpenGL
and observed that it only handles a few of the standard
X11 events. Specifically, it does *not* handle the
DestroyNotify event. I believe that adding a condition
for this error type and the corresponding code in the
higher level perl code would fix this problem.



  • Craig DeForest

    Craig DeForest - 2006-07-06

    Logged In: YES

    This will, I think, be resolved in the major overhaul
    release that is planned - so I'm deferring it for now and
    leaving it open.

  • Craig DeForest

    Craig DeForest - 2006-07-06
    • status: open --> pending-later
  • SourceForge Robot

    • status: pending-later --> closed-later
  • SourceForge Robot

    Logged In: YES

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).

  • Chris Marshall

    Chris Marshall - 2010-05-16

    Re-opening this as a reminder to add better exit handling for the various
    display windows (TriD, PLplot, PGPLOT...) so that exiting the window with
    the close widget does not kill the perldl shell. Even better would be if the
    various modules could restart and continue to work after such a close....

  • Chris Marshall

    Chris Marshall - 2010-05-16
    • status: closed-later --> open-remind
  • Chris Marshall

    Chris Marshall - 2010-07-26

    Good news, the latest PDL shell improvements have helped.
    Exiting with the window close [X] still hangs but you can
    Ctrl-C to get back to the pdl> prompt.

    However, if you try to use twiddle3d or any other TriD
    command, the shell dies with messages like this:

    pdl> $a=sqrt(rvals(zeroes(50,50))/2)

    pdl> imagrgb [0.5*sin(8*$a)+0.5,0.5*cos(8*$a)+0.5,0.5*cos(4*$a)+0.5]

    Runtime error: Interrupted.


    pdl> ?vars
    PDL variables in package main::

    Name Type Dimension Flow State Mem
    $a Double D [50,50] P 0.02Mb
    $Pi Double D [] P 0.01Kb

    pdl> twiddle3d
    freeglut (/cygdrive/e/perl/pdl_pre/local/bin/pdl2): glutSetWindow(): window ID 1 not found!
    freeglut (/cygdrive/e/perl/pdl_pre/local/bin/pdl2): ERROR: Function <glutSwapBuffers> called with no current window defined.

  • Chris Marshall

    Chris Marshall - 2011-02-14

    This bug is still present in PDL-2.4.7_009 and
    appears to result in a Segmentation fault (core dumped)
    for cygwin/freeglut. The final error is:

    freeglut (/cygdrive/f/perl/usr/local/bin/pdl2): glutSetWindow(): window ID 1 not found!

    So the close window handler is not properly
    exiting the GUI. That may be new functionality
    that needs to be implemented.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks