Dear All,
I would like to report what appears to be a race condition and a work
around, just in case I am not alone. I apologize if this has been
covered previously.
I compiled the CVS version wxVTK on Fedora 4 and linked it dynamically
to the latest versions of VTK and wxGTK. When I executed any of the
sample programs, I would get the following X error and the program would
exit normally:
The program 'Sample' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 7 error_code 3 request_code 2 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error()
function.)
However, everything worked just fine as soon as I used the "--sync"
option. So I couldn't really get a useful backtrace from gdb. I did a
little bit of debugging and found that the OnPaint method was fired
prematurely (Skipping the first call and everything would work fine with
or without the --sync switch). I did a bit of web searching and
eventually solved the problem by sticking the following line right
before the Render() call in the OnPaint() method:
this->SetCurrent();
Does this lead to other side effects? At least all Sample programs are
now working normally for me.
Alex
|