示例#1
0
            public Deadlock()
            {
                TestTimedOutTestsListener.Deadlock.DeadlockThread[] dThreads = new TestTimedOutTestsListener.Deadlock.DeadlockThread
                                                                               [6];
                TestTimedOutTestsListener.Deadlock.Monitor a = new TestTimedOutTestsListener.Deadlock.Monitor
                                                                   (this, "a");
                TestTimedOutTestsListener.Deadlock.Monitor b = new TestTimedOutTestsListener.Deadlock.Monitor
                                                                   (this, "b");
                TestTimedOutTestsListener.Deadlock.Monitor c = new TestTimedOutTestsListener.Deadlock.Monitor
                                                                   (this, "c");
                dThreads[0] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "MThread-1"
                                                                                    , a, b);
                dThreads[1] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "MThread-2"
                                                                                    , b, c);
                dThreads[2] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "MThread-3"
                                                                                    , c, a);
                Lock d = new ReentrantLock();
                Lock e = new ReentrantLock();
                Lock f = new ReentrantLock();

                dThreads[3] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "SThread-4"
                                                                                    , d, e);
                dThreads[4] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "SThread-5"
                                                                                    , e, f);
                dThreads[5] = new TestTimedOutTestsListener.Deadlock.DeadlockThread(this, "SThread-6"
                                                                                    , f, d);
                // make them daemon threads so that the test will exit
                for (int i = 0; i < 6; i++)
                {
                    dThreads[i].SetDaemon(true);
                    dThreads[i].Start();
                }
            }
示例#2
0
 internal DeadlockThread(Deadlock _enclosing, string name, TestTimedOutTestsListener.Deadlock.Monitor
                         mon1, TestTimedOutTestsListener.Deadlock.Monitor mon2)
     : base(name)
 {
     this._enclosing = _enclosing;
     this.mon1       = mon1;
     this.mon2       = mon2;
     this.useSync    = false;
 }