You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by Christopher Just <cj...@qwest.net> on 2001/08/29 07:47:05 UTC

patch for IRIX sproc( ) compatibility

I've attached to this message a slightly updated version of my patch to
provide support for sproc() based multiprocessing under IRIX.  Since I
have to support a library and applications that require this support,
I'd really like to see this support integrated into the xerces-c
repository.  

If any commiters interested in the platform-specific code would like to
apply this patch, or have concerns about it they'd like addressed,
please let me know.

The patch does not change the default behavior of the library under IRIX
in any way; it simply adds another threading option in runConfigure.

For the curious, sproc is an IRIX variant of fork() which creates
separate processes that use a shared memory space.  It is used by many
important IRIX software packages, including most versions of OpenGL
Performer.  It is, unfortunately, completely incompatible with pthreads
- including the pthreads mutexes in IRIXPlatformUtils.cpp.

The patch replaces the pthread-based mutex code in IRIXPlatformUtils
with equivalent code using usinitsema() and related functions.  I have
been using this version for several weeks and it appears to be quite
stable.  The patch is against the current CVS of xerces.

--
Christopher Just------------------------------------coronax@iastate.edu
                                 http://www.public.iastate.edu/~coronax
"Let us not go gently to the endless winter night"
                              -Rush