[ https://issues.apache.org/jira/browse/XERCESC-2140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roger Leigh updated XERCESC-2140: --------------------------------- Attachment: 0001-StdMutexMgr-Add-C-11-mutex-manager.patch > Add MutexMgr for C++11 mutex implementation > ------------------------------------------- > > Key: XERCESC-2140 > URL: https://issues.apache.org/jira/browse/XERCESC-2140 > Project: Xerces-C++ > Issue Type: Improvement > Components: Utilities > Affects Versions: 3.2.1 > Reporter: Roger Leigh > Assignee: Roger Leigh > Priority: Major > Attachments: 0001-StdMutexMgr-Add-C-11-mutex-manager.patch > > > Xalan currently supports two mutex managers: POSIX and Windows (and > NoThreads, which doesn't really count). With the advent of C++11, it's no > longer necessary to use platform-specific threading facilities, since it's > built directly into the standard library. The attached patch adds a > StdMutexMgr which uses a C++11 mutex, and will work on Unix or Windows > systems with a sufficiently new compiler. thread/mutex were implemented > years ago, so all recent and not so recent systems should support it. For > those that don't, it will fall back to the POSIX/Windows managers and behave > like before. > > Options have been added to manually select the desired manager as for other > options for both cmake and autoconf (standard/posix/windows/nothreads). > Documented in more detail on the build page. > > It's tested on Linux/MacOS X/Windows with a variety of manager combinations, > and all looks fine so far. Any testing/comments much appreciated. It's a > compatible addition, so could go into 3.2.2 if that's acceptable, otherwise > could wait for later. > > Looking at all of the manager implementations, one key defect (likely > intentional design), is that there is zero exception safety. No currently > held mutex will be released if an exception gets thrown. That could be > prevented by moving to using C++11 threading entirely, and using > std::lock_guard, which will automatically release locks on unwind. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org