summaryrefslogtreecommitdiff
path: root/tests/src/baseservices/threading/events/EventWaitHandle/unit/ManualConstructFalse.cs
blob: 459fe95b7f395715cbfdd687464d3f1765e9b23f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Threading;
using System.Diagnostics;

public class ManualConstructFalse : EventWaitHandleTest
{
	public static int Main()
	{
		return RunTest(new Func<int>(Run));
	}

	public static int Run()
	{
		var sw = new Stopwatch();		
		var ewh = new EventWaitHandle(false, EventResetMode.ManualReset);

		// Should not signal
		if (ewh.TestWaitOne(1000, sw))
			return -1;

		// Should signal
		ewh.Set();
		if (!ewh.TestWaitOne(0, sw))
			return -2;

		// Should not signal
		ewh.Reset();
		if (ewh.TestWaitOne(1000, sw))
			return -3;

		return TestPassed;
	}
}