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