Uploaded image for project: 'Xerces-C++'
  1. Xerces-C++
  2. XERCESC-2099

Support Standard C++ mutex

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.2.0
    • None
    • Utilities
    • Any supported platform
    • Patch

    Description

      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

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            rleigh Roger Leigh
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: