David Bertoni <[EMAIL PROTECTED]> writes: > The use in TransService.cpp doesn't make much sense to me. The transcoding > service is created through XMLPlatformUtils::Initialize(), and we've never > claimed that's thread-safe.
Good point. This class uses things like memory manager so it probably cannot be created before Initialize(). > Unfortunately, double-checked locking is everywhere in Xerces-C I just did a quick grep and you are right, there are many instances of this. This sucks big time. Not sure if it even makes sense to release 3.0.0 until we clean this up. > Is it possible we can do static initialization of XMLTransService through > the regular static initialization process? We can as long as the initialization process does not rely on things that are initialized by PlatformUtils::Initialize(). We can also use fgAtomicMutex in this case since there is only one TransService instance created so performance is not that important. > We should try to do the same with BinHTTPURLInputSource. Can't do that; it creates a mutex for which you need Initialize(). Boris -- Boris Kolpackov, Code Synthesis Tools Open source XML data binding for C++: http://codesynthesis.com/products/xsd Mobile/embedded validating XML parsing: http://codesynthesis.com/products/xsde --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
