-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Move the implementation of Monitor to managed in CoreCLR #118371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
src/coreclr/System.Private.CoreLib/src/System/Threading/SyncTable.CoreCLR.cs
Outdated
Show resolved
Hide resolved
…er once to avoid racing. Furthermore, handle an uninitialized lock ID in ObjectHeader.CoreCLR.cs. There's a possibility that the first time the managed Lock type's thread id tracking is used is on releasing a lock that was upgraded to a fat lock.
…inlock for thin->fat lock upgrading
…gedThreadId definitions (the last place that differs between runtimes)
src/coreclr/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs
Outdated
Show resolved
Hide resolved
src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs
Outdated
Show resolved
Hide resolved
src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs
Outdated
Show resolved
Hide resolved
src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Private.CoreLib/src/System/Threading/Lock.cs
Outdated
Show resolved
Hide resolved
src/coreclr/nativeaot/System.Private.CoreLib/src/System/Threading/Lock.NativeAot.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Private.CoreLib/src/System/Threading/Lock.cs
Outdated
Show resolved
Hide resolved
src/coreclr/System.Private.CoreLib/src/System/Threading/SynchronizedMethodHelpers.CoreCLR.cs
Outdated
Show resolved
Hide resolved
jkotas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM (modulo one last nit)
|
/ba-g WBT and deadletter unrelated. Sve failure tracked in #121189 |
| // so we create an empty enumerator. | ||
| CordbBlockingObjectEnumerator* objEnum = new CordbBlockingObjectEnumerator( | ||
| GetProcess(), | ||
| new CorDebugBlockingObject[0], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No longer deleted at the end of the function. It is 0 bytes, but...
This allows us to share more code with NativeAOT, reduce a decent amount of complexity in the runtime, and fixes a blocking issue for #117788