Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@CaseyCarter
Copy link
Contributor

@CaseyCarter CaseyCarter commented Aug 30, 2023

... via defining _ENABLE_CONSTEXPR_MUTEX_CONSTRUCTOR, instead of opt-out via _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR. This avoids potential breakage until we can update the VCLibs UWP framework libraries. Doing so in time for 17.8 is probably impossible at this late stage; we'll get this straightened out and enabled by default for 17.9.

@CaseyCarter CaseyCarter added bug Something isn't working high priority Important! visualizer How the VS debugger displays STL types labels Aug 30, 2023
@CaseyCarter CaseyCarter requested a review from a team as a code owner August 30, 2023 00:33
@CaseyCarter CaseyCarter marked this pull request as draft August 30, 2023 01:59
... via defining `_ENABLE_CONSTEXPR_MUTEX_CONSTRUCTOR`, instead of opt-out via `_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR`. This avoids potential breakage until we can update the VCLibs UWP framework libraries.
@CaseyCarter CaseyCarter changed the title Revert "constexpr mutex constructor" changes Make the constexpr mutex constructor opt-in Aug 30, 2023
@CaseyCarter CaseyCarter removed the visualizer How the VS debugger displays STL types label Aug 30, 2023
@CaseyCarter CaseyCarter marked this pull request as ready for review August 30, 2023 02:14
@CaseyCarter

This comment was marked as resolved.

@azure-pipelines

This comment was marked as resolved.

@CaseyCarter CaseyCarter merged commit 782dcd5 into microsoft:main Aug 30, 2023
@CaseyCarter CaseyCarter deleted the revert branch August 30, 2023 17:19
CaseyCarter added a commit to CaseyCarter/STL that referenced this pull request Jan 24, 2024
CaseyCarter added a commit to CaseyCarter/STL that referenced this pull request Jan 24, 2024
StephanTLavavej added a commit that referenced this pull request Jan 25, 2024
narknon added a commit to UE4SS-RE/RE-UE4SS that referenced this pull request Jun 22, 2024
microsoft/STL#3824
microsoft/STL#4000
microsoft/STL#4339

Add escape hatch due to STL change resulting in issues with binary compatibility.

https://github.com/microsoft/STL/wiki/Changelog
"Fixed bugs:

    Fixed mutex's constructor to be constexpr. #3824 #4000 #4339
        Note: Programs that aren't following the documented restrictions on binary compatibility may encounter null dereferences in mutex machinery. You must follow this rule:

            When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component.

        You can define _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR as an escape hatch."
narknon added a commit to UE4SS-RE/RE-UE4SS that referenced this pull request Jun 27, 2024
STL updates Mutex Fix

microsoft/STL#3824
microsoft/STL#4000
microsoft/STL#4339

Add escape hatch due to STL change resulting in issues with binary compatibility.

https://github.com/microsoft/STL/wiki/Changelog
"Fixed bugs:

    Fixed mutex's constructor to be constexpr. #3824 #4000 #4339
        Note: Programs that aren't following the documented restrictions on binary compatibility may encounter null dereferences in mutex machinery. You must follow this rule:

            When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component.

        You can define _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR as an escape hatch."**Description**
kirides added a commit to kirides/GD3D11 that referenced this pull request May 8, 2025
Merge SaiyansKing readme changes and workaround for old "critical section" usage, update readme

- Add Linux Wine Example
- Update readme
- @SaiyansKing fixed possible crash with mutex usage on newer c++:
  > VS 2022 17.10:
  > 
  > - Fixed bugs:
  >   - Fixed mutex's constructor to be constexpr. [#3824](microsoft/STL#3824) [#4000](microsoft/STL#4000) [#4339](microsoft/STL#4339)
Note: Programs that aren't following the documented [restrictions on binary compatibility](https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170) may encounter null dereferences in mutex machinery. You must follow this rule:
When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component.
  > 
  > - You can define _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR as an escape hatch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working high priority Important!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants