[cells-gtk-devel] unable to quit gtk-app bug in sbcl, and patch to fix

wagwilk at telusplanet.net wagwilk at telusplanet.net
Wed May 16 05:56:55 UTC 2007


I've found what I think is a bug.

With the latest cvs version of cells-gtk, and running a recent version of SBCL,
when you quit the GTK app, the program gets stuck on line 124 of gtk-app.lisp:

gtk-app.lisp-122-           ;; clean-up forms (takes down application).
gtk-app.lisp-123-           (not-to-be app) 
gtk-app.lisp:124:           (loop while (> (gtk-main-level) 0) do (gtk-main-quit)) 
gtk-app.lisp-125-            ;; Next is a work-around for a problem with gtk and
lispwork-created .exe files
gtk-app.lisp-126-           #+(and Lispworks win32)(loop for i from 1 to 30 do
(gtk-main-quit))
gtk-app.lisp-127-           (loop while (gtk-events-pending) do
(gtk-main-iteration-do nil)))))))


I get this output when I turn on debugging.

Calling (gtk-main-level )
  (gtk-main-level ) returns 1
Calling (gtk-main-quit )
  (gtk-main-quit ) returns NIL
Calling (gtk-main-level )
  (gtk-main-level ) returns 1
Calling (gtk-main-quit )
  (gtk-main-quit ) returns NIL
Calling (gtk-main-level )
  (gtk-main-level ) returns 1
Calling (gtk-main-quit )
...

To fix, I replaced line 124 with this line:

(loop for i below (gtk-main-level)
                  do (gtk-main-quit))


Which seems to make the gtk-app exit correctly.

Also, if anybody is on Gentoo, I've made some ebuilds for cells gtk, both the
latest tarball and CVS here: http://www3.telus.net/public/thomasw2/ebuilds.html

Cheers,
Warren Wilkinson





More information about the cells-gtk-devel mailing list