From 44d58bcd3ca9976425159374ecb5b88209f0d3c3 Mon Sep 17 00:00:00 2001 From: Eli Belash Date: Fri, 30 Aug 2019 19:50:21 +0300 Subject: [PATCH] MultiThreadedUnitTestEvaluator: Fixed when using ThreadCount==1 Set all methods inside as Hidden --- .../Utilities/MultiThreadedUnitTestExecuter.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/TensorFlowNET.UnitTest/Utilities/MultiThreadedUnitTestExecuter.cs b/test/TensorFlowNET.UnitTest/Utilities/MultiThreadedUnitTestExecuter.cs index 6b576e8b..3367e353 100644 --- a/test/TensorFlowNET.UnitTest/Utilities/MultiThreadedUnitTestExecuter.cs +++ b/test/TensorFlowNET.UnitTest/Utilities/MultiThreadedUnitTestExecuter.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.Threading; namespace TensorFlowNET.UnitTest @@ -20,6 +21,7 @@ namespace TensorFlowNET.UnitTest #region Static + [DebuggerHidden] public static void Run(int threadCount, MultiThreadedTestDelegate workload) { if (workload == null) throw new ArgumentNullException(nameof(workload)); @@ -27,6 +29,7 @@ namespace TensorFlowNET.UnitTest new MultiThreadedUnitTestExecuter(threadCount).Run(workload); } + [DebuggerHidden] public static void Run(int threadCount, params MultiThreadedTestDelegate[] workloads) { if (workloads == null) throw new ArgumentNullException(nameof(workloads)); @@ -35,6 +38,7 @@ namespace TensorFlowNET.UnitTest new MultiThreadedUnitTestExecuter(threadCount).Run(workloads); } + [DebuggerHidden] public static void Run(int threadCount, MultiThreadedTestDelegate workload, Action postRun) { if (workload == null) throw new ArgumentNullException(nameof(workload)); @@ -58,6 +62,7 @@ namespace TensorFlowNET.UnitTest barrier_threadstarted = new SemaphoreSlim(0, threadCount); } + [DebuggerHidden] public void Run(params MultiThreadedTestDelegate[] workloads) { if (workloads == null) @@ -67,7 +72,15 @@ namespace TensorFlowNET.UnitTest if (ThreadCount == 1) { - workloads[0](0); + new Thread(() => + { + workloads[0](0); + done_barrier2.Release(1); + }).Start(); + + done_barrier2.Wait(); + PostRun?.Invoke(this); + return; }