Search Issue Tracker

Fixed in 5.0.X

Votes

0

Found in

4.3.4f1

Issue ID

612251

Regression

No

ManualResetEvent fails if the mono debugger is attached

Mono

-

To reproduce:
1. Create a script:

using System.Threading;
using UnityEngine;

public class Test : MonoBehaviour
{
private ManualResetEvent m_ResetEvent;
void Start()
{
m_ResetEvent = new ManualResetEvent(false);
var thread = new Thread(WaitPlease);
thread.Start();
}
private void WaitPlease()
{
m_ResetEvent.WaitOne();
Debug.Log("How could I possibly be here?");
}
}

2. Attach the script to the camera
3. Enter/leave play mode - console is clean
4. Attach monodevelop debugger to Unity
5. Enter/leave play mode - notice that the console now has "How could I possibly be here?" - the ManualResetEvent did not work

Comments (2)

  1. CharlesWoodhill1

    Aug 22, 2014 17:50

    seems the debugger autosets all wait handles... (EventWaitHandle, Mutex, Sleep)

  2. Synastry

    Jul 28, 2014 04:40

    This bug is also reproducible by calling IAsyncResult.AsyncWaitHandle.WaitOne method with an IAsyncResult instance returned by async I/O method like TcpClient.BeginConnect.

    This bug let programmer cannot use connecting with timeout functionality while debugger is attached.

    I really hope this issue to be released in near future release.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.