Hrvoje Niksic <hniksic(a)srce.hr> writes:
Didier Verna <verna(a)inf.enst.fr> writes:
> > The right solution is for x_IO_error_handler to throw to top level
> > without ever returning to Xlib.
>
> This sounds like it will fix your problem, but not the case where
> one of *multiple* X connections (either local or remote) is killed,
> right ?
Why? I thought it would fix both. I haven't tested it yet, though.
Because of a painfull limitation of the intrinsics: when a fatal error
occurs either the library exists the application, or you have installed a
personnal error handler and this handler is not supposed to return (most
important: further calls to Xlib will lead to undefined results). As a
consequence, your fix actually benefits from the fact that you have "somewhere
else" to return, namely a non X Window console connection, which is not always
the case.
As I see it, here's what could happen:
- If you have a non X console connection somewhere, killing an existing X frame
won't indeed kill xemacs, but is likely to delete all X frames.
- If you don't have any non X connections, xemacs will be killed all the same.
The real pain is that X considers it fatal to loose a connection, even
in the case you have several ones. I'll apply your patch and check if my
predictions are right.
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / E.N.S.T. INF C201.1 mailto:vernaļ¼ inf.enst.fr
/_/ / /_/ / /__ / 46 rue Barrault Tel. (33) 01 45 81 80 72
75634 Paris cedex 13 Fax. (33) 01 45 81 31 19