Gnats XXXX -- Solaris GUI Ghosting / Non-thread safe event processing

Subject:     Re: Information about RiverWare behavior
Date:   Wed, 06 Jun 2007 11:43:30 -0600
From:   Nancy Hall <halln@colorado.edu>
Organization:   Center for Advanced Decision Support for Water and Environmental Systems
CC:   riverware@maelstrom.Colorado.EDU
Hmm, we have a multi-threaded RiverWare, and it's not been written to
be thread-safe. Doing I/O, malloc, or anything but very lightweight
work (that doesn't descend to any run-time libraries) in a signal
handler is a problem in a multi-threaded process.

After talking with Bill about this, I'm thinking that in order to have
any confidence in a RiverWare running with multiple threads (namely,
with the Oracle stuff), we have to:

1) fix every signal handler in RiverWare (including seeing what
galaxy and Qt do with signals and see how they pick up
async events like keystrokes)
2) get rid of unsafe sleep mechanisms (usleep, any others)
3) use the thread-safe QT library only
4) probably have to get rid of galaxy, because it's a good bet that
it's not thread-safe
5) get rid of all exceptions in RiverWare, and spend some time
determining what will happen with the STL exceptions on the various
vendors' thread packages (Solaris, whatever Linux we use, Windows).

-nancy

Bill Oakley wrote ... CLICK HERE