Search Issue Tracker

Fixed in 2020.3.45f1

Fixed in 2020.3.X, 2021.3.X, 2022.2.X, 2023.1.X, 2023.2.X, 2023.2.0a1

Votes

0

Found in

2020.3.43f1

2021.3.16f1

2022.2.2f1

2023.1.0a25

2023.2.0a1

Issue ID

UUM-22329

Regression

No

"Monitor.IsEntered" checks if any thread holds the lock when using IL2CPP

IL2CPP

-

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

Add comment

Log in to post comment