CLIM mail archive
Re: Motif Breakage
To: Nichael Cramer <ncramer@BBN.COM>
Subject: Re: Motif Breakage
From: Colin Meldrum <firstname.lastname@example.org>
Date: Fri, 21 Jan 94 18:56:25 -0800
In-Reply-To: Your message of Tue, 18 Jan 94 08:01:04 EST. <9401181314.AA02158@hyper.Franz.COM>
Date: Tue, 18 Jan 94 8:01:04 EST
From: Nichael Cramer <ncramer@BBN.COM>
Subject: Motif Breakage
I've spent a fair amount of time recently working in and around the Motif
gadgets in CLIM, particularly the menus/menu-bars. The wins here are
obvious: faster, better looking, consistency of interface, etc.
The primary lossage is equally obvious: i.e. if something breaks in the
middle of the motif calls --say a misspelled method name while deciding if
the item is active-- the motif-handler breaks.
At this point the console to my machine freezes and the only option I seem
to have is to go to another machine and kill my Lisp process (consequently,
all of my debugging info is gone, an enourmous amount of state can get
flushed, etc, etc...)
The event handler is not broken at this point. What typically has happened
is that the menu code has grabbed the server, and when the error occurs you
cannot get to the debugger window in order to abort out from the error.
This is unfortunate but pretty much unavoidable - the menu code must grab
the server - that's just how popup menus work.
So the questions:
o Does anyone know any other way out of this?
o Is there some less catastrophic way of backing out of these errors?
o Is there some way to trap these errors (i.e. the ones that occur down
inside Motif) in a more meaningful/useful way?
The problem is that you are using one display for two purposes - for
displaying your application and also for debugging your application. If you
are working in one of these dangerous areas (menus and scrollbar callbacks
are the two that spring to mind), you might want to consider running the
emacs (or the shell) on which you are running the lisp on a different
display to the one you're displaying the application on. Then you should be
able to gain access to the debugger windows and simply abort out from the
If you happen to get an error in the event handler process, you should find
that there is a restart to restart the handler process. Assuming things
aren't completely broken this should work.
As I said above the Motif-things are nice to use, but at the cost of
rebooting my machine six times a day during a tight development cycle,
their worth becomes less clear.
Do things really get to the point where you need to reboot your machine?
Colin Meldrum, Franz Inc. 1995 University Avenue, Suite 275
colin@Franz.COM (internet) Berkeley, CA 94704
uunet!franz!colin (uucp) Phone: (510) 548-3600; FAX: (510) 548-8253
Main Index |