Add a lock to GetNewThunksBlock#119267
Merged
Merged
Conversation
Fixes dotnet#116089. The method accesses shared static state, locking is needed.
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds thread safety to the GetNewThunksBlock method by introducing a lock to protect access to shared static state. The issue was that multiple threads could concurrently access and modify the static fields s_currentlyMappedThunkBlocks and s_currentlyMappedThunkBlocksIndex without synchronization, leading to potential race conditions.
Key changes:
- Adds a static
Lockfield for synchronization - Wraps the
GetNewThunksBlockmethod body with lock acquisition using the newLock.Scopepattern - Imports the
System.Threadingnamespace to support the locking functionality
jkotas
reviewed
Sep 2, 2025
jkotas
approved these changes
Sep 2, 2025
filipnavara
approved these changes
Sep 2, 2025
…e/ThunkPool.cs Co-authored-by: Jan Kotas <jkotas@microsoft.com>
filipnavara
pushed a commit
to filipnavara/runtime
that referenced
this pull request
Sep 5, 2025
Fixes dotnet#116089. The method accesses shared static state, locking is needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #116089.
The method accesses shared static state, locking is needed.
Cc @dotnet/ilc-contrib