Bug 57069 - WaitHandle.SignalAndWait is broke
Summary: WaitHandle.SignalAndWait is broke
Status: RESOLVED FIXED
Alias: None
Product: Runtime
Classification: Mono
Component: io-layer (show other bugs)
Version: 5.0 (2017-02)
Hardware: PC Mac OS
: Normal major
Target Milestone: ---
Assignee: Ludovic Henry
URL:
Depends on:
Blocks:
 
Reported: 2017-06-01 19:20 UTC by Jonathan Chambers
Modified: 2017-06-05 19:18 UTC (History)
4 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description Jonathan Chambers 2017-06-01 19:20:34 UTC
Run the follow test case. It hangs in Mono 5.0+. This is a regression from Mono 4.8

using System;
using System.Threading;

internal class Program
{
    public static void Main (string[] args)
    {
        using (var eventToSignal = new AutoResetEvent (false))
        using (var eventToWait = new AutoResetEvent (false))
        {
            eventToWait.Set ();

            var res1 = WaitHandle.SignalAndWait (eventToSignal, eventToWait);
            Console.WriteLine ("res1: " + res1);

            var res2 = eventToSignal.WaitOne ();
            Console.WriteLine ("res2: " + res2);
        }
    }
}
Comment 1 Jonathan Chambers 2017-06-01 19:28:04 UTC
This runs fine on Mono with Windows, so this looks like a w32 layer issue.
Comment 2 Ludovic Henry 2017-06-05 19:18:33 UTC
This is fixed with https://github.com/mono/mono/pull/4973

Note You need to log in before you can comment on or make changes to this bug.