Moving discussion to XEmacs Beta.
>>>> "Ben" == Ben Sigelman
<bhsigelm(a)cs.brown.edu> writes:
Ben> I realize that this is claiming to stop in
Ben> emacs_Xt_event_pending_p, but as you can see I must have just
Ben> screwed up the symbol names in my rebuild or something... it
Ben> doesn't seem to see drain_X_queue,
drain_X_queue is static and simple and used once---gcc undoubtedly
inlined it and forgot to leave a symbol in the table. I see this a lot.
Ben> super*c*edes, yes...
Maybe in the OED, but not in Webster's. :-)
Ben> * event-Xt.c (drain_X_queue): loop over
Ben> while(XEventsQueued()) instead of
Ben> while(XtAppPending()&XtIMXEvent).
Have you tried the loop over devices with XtAppPending(), not
XEventsQueued()? (Yes/no answer is fine, I'm going to try it myself
anyway, despite my high regard for my own convenience. ;-)
I'm guessing that the reason that your patch "works" is this:
+ struct device* d;
+ Display* display;
+ d = XDEVICE (XCAR (devcons));
+ if (DEVICE_X_P (d) && DEVICE_X_DISPLAY (d)) {
Ie, if the device goes down, XEmacs detects that and deletes it. Then
the if() fails (DEVICE_X_DISPLAY(d) is NULL), and we don't go into the
Xlib-of-no-return. If you know different, I'd like to hear about it.
;-)
Thanks for following up!
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
My nostalgia for Icon makes me forget about any of the bad things. I don't
have much nostalgia for Perl, so its faults I remember. Scott Gilbert c.l.py