public void Should_prevent_new_actions_from_being_queued() { Fiber fiber = new ThreadPoolFiber(); var called = new Future<bool>(); fiber.Stop(); Assert.Throws<FiberException>(() => fiber.Add(() => called.Complete(true))); fiber.Shutdown(10.Seconds()); called.IsCompleted.ShouldBeFalse(); }
public void Should_prevent_new_actions_from_being_queued() { Fiber fiber = new ThreadPoolFiber(); var called = new Future <bool>(); fiber.Stop(); Assert.Throws <FiberException>(() => fiber.Add(() => called.Complete(true))); fiber.Shutdown(10.Seconds()); called.IsCompleted.ShouldBeFalse(); }
public void Should_result_in_no_waiting_actions_in_the_queue() { TraceLogger.Configure(LogLevel.Debug); Fiber fiber = new ThreadPoolFiber(); var called = new Future<bool>(); 10.Times(() => fiber.Add(() => Thread.Sleep(100))); fiber.Add(() => called.Complete(true)); Stopwatch timer = Stopwatch.StartNew(); fiber.Shutdown(8.Seconds()); timer.Stop(); called.IsCompleted.ShouldBeTrue(); timer.ElapsedMilliseconds.ShouldBeLessThan(2000); }
public void Should_result_in_no_waiting_actions_in_the_queue() { TraceLogger.Configure(LogLevel.Debug); Fiber fiber = new ThreadPoolFiber(); var called = new Future <bool>(); 10.Times(() => fiber.Add(() => Thread.Sleep(100))); fiber.Add(() => called.Complete(true)); Stopwatch timer = Stopwatch.StartNew(); fiber.Shutdown(8.Seconds()); timer.Stop(); called.IsCompleted.ShouldBeTrue(); timer.ElapsedMilliseconds.ShouldBeLessThan(2000); }