Handling X errors using exception handlers

Alexandre Julliard julliard at winehq.com
Sat Jul 14 12:01:21 CDT 2001


Lionel Ulmer <lionel.ulmer at free.fr> writes:

> When discussing with Ove yesterday on #WineHQ about the handling of X
> errors, he told me about an idea of his : using exceptions to handle X
> errors.

The main problem with that is that I don't think you can jump out of
Xlib without corrupting its state. Also you'd need to properly unlock
the tsx11 lock in case of exception, which will probably require an
finally handler around each X call.

My idea was to have the following two functions:

void X11DRV_expect_error( unsigned char request, unsigned char error, XID id );
int X11DRV_check_error(void);

You'd call X11DRV_expect_error before doing an X call that can fail;
then if an X error happens that matches what you expect, the X error
handler will simply set a flag and ignore the error (if it doesn't
match you get the standard error handling). Then after the call you
use X11DRV_check_error to see if your error happened or not. Would
this work for what you need?

-- 
Alexandre Julliard
julliard at winehq.com




More information about the wine-devel mailing list