I realize it is a leap to transition from a thread (library) agnostic model to one that acknowledges the existance of a thread model, as well as the variations in the threading models.
But I would argue that the POSIX pthread model provides solutions to all of the challenges that you face. I would further argue that in the 8-9 years since POSIX standardized the threading model, many vendors have revised their systems to correctly implement the POSIX model. Arguably, all of the popular and important implementations are there. (See Peter Waltenberg's recent comments in this thread). My suggestion is to implement a (synchronization) solution that strictly adheres to the POSIX-96 or POSIX-2001 standard. You could make it optional (via configure and #ifdefs) for platforms that do not implement mutexes or do not implement them in a sufficiently standard method. These platforms will be no worse off than they are today. Basically, I'm proposing transitioning from a thread library agnostic model to a single threading model -- standard POSIX pthreads. Having a major package like OpenSSL follow the standard will be a huge incentive to users to upgrade to newer releases of the operating systems that support standard (non quirky) POSIX pthreads, and it will be a major incentive to vendors to improve their implementations, if and when necessary. As someone who works for a vendor and lobbies for projects, I can tell you that it is absolutely the case that requirements to run open-source packages such as OpenSSL drive funding of development projects. No doubt porting engineers taking OpenSSL to platforms with non-standard or quirky implementations will submit patches to make OpenSSL work for them, but my strong feeling is that such patches should be carefully weighed before acceptance; the bias should be to adhere to a single pthread model, else we will end up in the soup that you have been understandably avoiding. You could perhaps get started by simply releasing a simple test case that uses and tests the POSIX mutex features you need. We could then build it and see whether we implement the features, and implement them correctly. Take a look sometime at how Samba deals with building on multiple platforms; see http://build.samba.org. Their system makes it easy for a maintainer to get instant feedback on build and test issues across a wide variety of platforms. Thanks PG -- Paul Green, Senior Technical Consultant, Stratus Technologies, Maynard, MA USA Voice: +1 978-461-7557; FAX: +1 978-461-3610 ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]