public void set_handler_completion_signal()
        {
            var awaiter = new HandlingManagerAwaiter(1);

            awaiter.SetHandlerCompletionSignal();

            Assert.True(awaiter.IsHandlerCompletionSignalSet);
        }
        public async Task await_handler_completion_signal()
        {
            var cts     = new CancellationTokenSource(5000);
            var awaiter = new HandlingManagerAwaiter(1);

            var waitTask = awaiter.AwaitHandlerCompletionSignalAsync();

            awaiter.SetHandlerCompletionSignal();

            await Task.WhenAny(new[] { waitTask, cts.Token.WaitHandle.AsTask() });

            if (cts.IsCancellationRequested)
            {
                throw new TimeoutException();
            }
        }