- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5.2k
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
        
          
                src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs
          
            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
          
            Show resolved
            Hide resolved
        
              
          
                src/libraries/System.Private.CoreLib/src/System/Threading/ThreadBlockingInfo.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.Shared.xml
          
            Show resolved
            Hide resolved
        
      | Looks good to me otherwise! | 
…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
        
      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