Reproduction steps:
1. Open project “il2cpp-monitor-bug”
2. Open scene “SampleScene”
3. Build and run the project with IL2CPP Scripting Backend
4. Observe the built project’s screen
Expected result: Text on the screen says “Result of the Monitor.isEntered() in thread that did NOT own the lock: false“ - System.Threading.Monitor.IsEntered checks if the current thread holds the lock
Actual result: Text on the screen says “Result of the Monitor.isEntered() in thread that did NOT own the lock: true“ - System.Threading.Monitor.IsEntered checks if any thread holds the lock
Reproducible with: 2021.3.16f1, 2022.2.2f1, 2023.1.0a25, 2020.3.43f1
(Note: to test with 2020.3.43f1 - Click Continue on the UnityPackageManagerError and then remove the com.unity.feature.2d package. The project will build and run correctly without that package.)
Reproducible on: Catalina 10.15.7 (Intel)
Note: Building the project with Mono scripting backend gives expected results