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]

Reply via email to