Roger Leigh created XERCESC-2099:
------------------------------------

             Summary: Support Standard C++ mutex
                 Key: XERCESC-2099
                 URL: https://issues.apache.org/jira/browse/XERCESC-2099
             Project: Xerces-C++
          Issue Type: Bug
          Components: Utilities
    Affects Versions: 3.2.0
         Environment: Any supported platform
            Reporter: Roger Leigh
         Attachments: 0001-StdMutexMgr-Add-C-11-mutex-manager.patch

Xerces-C currently supports POSIX and Win32 threading models with dedicated 
mutex manager classes.  C++ standards since C\+\+11 support native mutexes 
which will work on any supported platform.

The attached patch adds a {{StdMutexMgr}} class and the necessary Autoconf and 
CMake logic to check if C\+\+ mutexes are available.  If not, it will fall back 
to the existing managers.

On all but the most current compilers, it will continue to use POSIX/Win32 
managers.  On the most recent compilers, which default to C\+\+14, the standard 
mutexes will be used.  On older compilers, the user must explicitly enable by 
setting {{CXXFLAGS=-std=c++11}} or later.

See

- [travis|https://travis-ci.org/rleigh-codelibre/xerces-c/builds/241340724]
- 
[appveyor|https://ci.appveyor.com/project/rleigh-codelibre/xerces-c/build/1.0.88]

for build and test results.  You'll see that GCC on Linux is using POSIX mutex, 
while clang on MacOS X is using standard mutex.  On Windows, Cygwin uses POSIX 
mutex while MinGW and MSVC uses standard mutex.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to