Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }