Amnesia.Data.AmnesiaDbCommand.CheckForDeadlocks C# (CSharp) Метод

CheckForDeadlocks() статический приватный Метод

static private CheckForDeadlocks ( object arg ) : void
arg object
Результат void
        static void CheckForDeadlocks(object arg)
        {
            lock (executing)
            {
                bool newSuspects = false;
                List<AmnesiaDbCommand> suspects = null;

                foreach (var cmd in executing)
                {
                    if ((DateTime.Now - cmd.executionStartTime).TotalMilliseconds > DEADLOCK_WARNING_MS && !cmd.deadlockSuspected)
                    {
                        if (!cmd.deadlockSuspected)
                        {
                            cmd.deadlockSuspected = true;
                            newSuspects = true;
                        }

                        if (suspects == null)
                            suspects = new List<AmnesiaDbCommand>();

                        suspects.Add(cmd);
                    }
                }

                if (newSuspects)
                {
                    for (int i = 0; i < suspects.Count; ++i)
                    {
                        AmnesiaDbCommand cmd = suspects[i];

                        if (i == 0)
                            Session.AsyncLog.Write("These commands have been executing for a long time and may be deadlocked:");

                        Session.AsyncLog.Write("#{2} [+{0}ms] {1}", (DateTime.Now - cmd.executionStartTime).TotalMilliseconds, cmd.CommandText, i + 1);
                        Session.AsyncLog.Write(new StackTrace(cmd.executingThread, true).ToString());
                    }
                }
            }
        }