CLIM mail archive

[Prev][Next][Index][Thread]

Re: Motif Breakage




  Date: Tue, 18 Jan 94 8:01:04 EST
  From: Nichael Cramer <ncramer@BBN.COM>
  To: clim@BBN.COM
  Subject:  Motif Breakage

  [Sparc/allegro-4.2/Clim-2.0]

  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
error.

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 | Thread Index