You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Roger Leigh (JIRA)" <xe...@xml.apache.org> on 2019/01/21 12:55:00 UTC
[jira] [Commented] (XERCESC-2165) StdMutexMgr not working properly
on VS2013 / Windows 7
[ https://issues.apache.org/jira/browse/XERCESC-2165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16747920#comment-16747920 ]
Roger Leigh commented on XERCESC-2165:
--------------------------------------
If you aren't supposed to acquire a lock during DllMain, then isn't this a problem in the OpenDSS library due to how it's using Xerces-C++?
I'm not sure why C++11 mutexes would be any different than the original Windows implementation, unless there's an implementation defect in VS2013's runtime. Both should end up calling Enter/LeaveCriticalSection. Is it possible to get a stack trace with the msvcr120d symbols? Are they installed as the appropriate PDB?
Regarding the release notes, it was ticket XERCESC-2140 which should have been closed to include. I've done so now.
This can certainly be documented as a known issue. It's certainly the case that the CI testing is currently only done for VS2015, with VS2013 and earlier left untested. And we should probably add VS2017. I would not be averse to testing more Visual Studio versions if someone is willing to support them, but I don't personally have the time to dedicate to it.
Kind regards,
Roger
> StdMutexMgr not working properly on VS2013 / Windows 7
> ------------------------------------------------------
>
> Key: XERCESC-2165
> URL: https://issues.apache.org/jira/browse/XERCESC-2165
> Project: Xerces-C++
> Issue Type: Bug
> Components: Utilities
> Affects Versions: 3.2.2
> Reporter: Andreas Kleber
> Priority: Minor
> Attachments: xerces-hang.png
>
>
> I am building a dynamic library which statically links OpenDSS, which statically links ACE which statically links xerces-c with Visual Studio 2013.
> When I run my application on Windows 7 the loading of my dll hands during static initialization in StdMutexManager::lock(). See attached screenshot.
> On windows 10 the same binaries work as expected.
> I am building xerces 3.2.2 with default parameters as static library with VS2013. During my investigation I found that xerces 3.2.1 works as well as
> specifying the WindowsMutexMgr during configure, because, well, StdMutexMgr was introduced in 3.2.2. Btw, this introduction of a new default Mutex Manager (at least default in my environment) is not mentioned in the release notes. Whould have helped me a lot....
> In my environment all test pass on Windows 7 with StdMutexMgr.
> Additional note: [Microsoft|[https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-best-practices]] recommends not to acquire syncronization during dllmain.
> As Windows 7 and VS 2013 are old and a workaround exists, this issue here is intended as "known issue".
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org