private static TimeoutCookie WithTimeoutCookie()

in src/Program.cs [247:264]


        private static TimeoutCookie WithTimeoutCookie(int? timeoutMs, Action action = null)
        {
            if (timeoutMs == null) return default;

            var source = new CancellationTokenSource();
            var token = source.Token;
            Task.Factory.StartNew(async () =>
            {
                await Task.Delay(timeoutMs.Value, token);

                action?.Invoke();

                await Console.Error.WriteLineAsync("Cannot capture stack trace from process: Timeout expired.");
                Environment.Exit(2);
            }, token);

            return new TimeoutCookie(source);
        }