diff options
Diffstat (limited to 'java/JACE/tests/Concurrency/TimingTest.java')
-rw-r--r-- | java/JACE/tests/Concurrency/TimingTest.java | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/java/JACE/tests/Concurrency/TimingTest.java b/java/JACE/tests/Concurrency/TimingTest.java deleted file mode 100644 index 783d2e003a2..00000000000 --- a/java/JACE/tests/Concurrency/TimingTest.java +++ /dev/null @@ -1,290 +0,0 @@ -package JACE.tests.Concurrency; - -import JACE.OS.*; -import JACE.ASX.*; -import JACE.Concurrency.*; - -/** - * Performs a test with 5 threads. This should test what happens during - * renews, also testing what happens when timeout exceptions are generated - * during operations. - * - * Sample output: - * - * Thread 1 calling acquire - * Thread 1 got lock - * Thread 1 doing work - * Thread 2 calling acquire - * Thread 1 finished doing work - * Thread 1 calling renew -1 1 - * Thread 2 got lock - * Thread 2 doing work - * Thread 3 calling acquire - * Thread 4 calling acquire - * Thread 5 calling acquire with 1 sec timeout - * Thread 1 timed out in renew - * Thread 1 failed renewing - * Thread 1 calling release - * Thread 1 failed release - * Thread 5 timed out in acquire - * Thread 5 failed acquire - * Thread 5 calling release - * Thread 5 failed release - * Thread 2 finished doing work - * Thread 2 calling renew 1 - * Thread 3 got lock - * Thread 3 doing work - * Thread 3 finished doing work - * Thread 3 calling release - * Thread 3 released - * Thread 2 got the lock back - * Thread 2 calling release - * Thread 2 released - * Thread 4 got lock - * Thread 4 doing work - * Thread 4 finished doing work - * Thread 4 calling release - * Thread 4 released - */ -public class TimingTest -{ - static class Worker extends Thread - { - AbstractLock lock; - String name; - int order; - - public Worker (String name, int order, AbstractLock lock) - { - this.name = name; - this.order = order; - this.lock = lock; - } - - public void run() - { - switch (this.order) - { - case 1: - methodA(); - break; - case 2: - methodB(); - break; - case 3: - methodC(); - break; - case 4: - methodD(); - break; - } - } - - public void methodA() - { - // acquires - // launches a class 2 worker - // works - // renew -1 with a 1 sec timeout (intended to fail) - // release - - try { - if (acquire() == AbstractLock.FAILURE) - return; - - new Worker("Thread 2", 2, lock).start(); - - work(3000); - - renew(-1, 1); - } finally { - release(); - } - } - - public void methodB() - { - // acquire - // launch two new class 3 workers and one class 4 worker - // work - // renew, yielding to one waiter - // release - try { - if (acquire() == AbstractLock.FAILURE) - return; - - new Worker ("Thread 3", 3, lock).start (); - new Worker ("Thread 4", 3, lock).start (); - new Worker ("Thread 5", 4, lock).start (); - - work(3000); - - renew(1); - } finally { - release(); - } - } - - public void methodC() - { - // acquire - // work - // release - - try { - if (acquire() == AbstractLock.FAILURE) - return; - - work(1000); - } finally { - release(); - } - - } - - public void methodD() - { - // acquire with a short timeout - // (shouldn't get past the timeout) - try { - if (acquire (1) == AbstractLock.FAILURE) - return; - - ACE.DEBUG (name + " probably should have timed out in acquire"); - work (1000); - } finally { - release (); - } - } - - public int acquire (int relativeTimeout) - { - int result = AbstractLock.FAILURE; - ACE.DEBUG(name + " calling acquire with " + relativeTimeout + - " sec timeout"); - - try { - result = lock.acquire (TimeValue.relativeTimeOfDay (relativeTimeout, 0)); - } catch (JACE.ASX.TimeoutException e) { - ACE.DEBUG(name + " timed out in acquire"); - } catch (Exception e) { - ACE.DEBUG (name + " got exception: " + e); - } - - if (result != AbstractLock.FAILURE) - ACE.DEBUG(name + " got lock"); - else - ACE.DEBUG(name + " failed acquire"); - - return result; - } - - public int acquire() - { - int result = AbstractLock.FAILURE; - - ACE.DEBUG(name + " calling acquire"); - try { - result = lock.acquire(); - } catch (Exception e) { - ACE.DEBUG(name + " got exception: " + e); - } - if (result != AbstractLock.FAILURE) - ACE.DEBUG(name + " got lock"); - else - ACE.DEBUG(name + " failed acquire"); - - return result; - } - - public void release() - { - ACE.DEBUG(name + " calling release"); - int result = AbstractLock.FAILURE; - try { - result = lock.release(); - } catch (Exception e) { - ACE.DEBUG (name + " got exception: " + e); - } - - if (result != AbstractLock.FAILURE) - ACE.DEBUG(name + " released"); - else - ACE.DEBUG(name + " failed release"); - } - - public void renew(int pos) - { - int result = AbstractLock.FAILURE; - ACE.DEBUG(name + " calling renew " + pos); - try { - result = lock.renew(pos); - } catch (Exception e) { - ACE.DEBUG (name + " got exception: " + e); - } - - if (result != AbstractLock.FAILURE) - ACE.DEBUG(name + " got the lock back"); - else - ACE.DEBUG(name + " failed renewing"); - } - - public void renew(int pos, int relativeTimeout) - { - int result = AbstractLock.FAILURE; - ACE.DEBUG(name + " calling renew " + pos + " " + - relativeTimeout); - try { - result = lock.renew(pos, - TimeValue.relativeTimeOfDay(relativeTimeout, - 0)); - } catch (JACE.ASX.TimeoutException e) { - ACE.DEBUG(name + " timed out in renew"); - } catch (Exception e) { - ACE.DEBUG (name + " got exception: " + e); - } - - if (result != AbstractLock.FAILURE) - ACE.DEBUG(name + " got the lock back"); - else - ACE.DEBUG(name + " failed renewing"); - } - - public void work(int ms) - { - ACE.DEBUG(name + " doing work"); - try { - Thread.sleep(ms); - } catch (InterruptedException e) { - ACE.DEBUG(name + " was interrupted"); - } - ACE.DEBUG(name + " finished doing work"); - } - } - - /** - * Command line: - * - * Optional class name (which implements AbstractLock) to test - */ - public static void main(String args[]) { - AbstractLock lock; - - ACE.enableDebugging (); - - try { - - if (args.length > 0) { - ACE.DEBUG("Using class " + args[0] + " as the Lock"); - - lock = (AbstractLock)(Class.forName (args[0]).newInstance ()); - } else - lock = new Token (); - - new Worker("Thread 1", 1, lock).start(); - - } catch (Exception e) { - ACE.ERROR("Error: " + e); - } - } -} |