70 |
|
assertFalse(s0.isFair()); |
71 |
|
Semaphore s1 = new Semaphore(-1, false); |
72 |
|
assertEquals(-1, s1.availablePermits()); |
73 |
+ |
assertFalse(s1.isFair()); |
74 |
|
Semaphore s2 = new Semaphore(-1, false); |
75 |
|
assertEquals(-1, s2.availablePermits()); |
76 |
+ |
assertFalse(s2.isFair()); |
77 |
+ |
} |
78 |
+ |
|
79 |
+ |
/** |
80 |
+ |
* Constructor without fairness argument behaves as nonfair |
81 |
+ |
*/ |
82 |
+ |
public void testConstructor2() { |
83 |
+ |
Semaphore s0 = new Semaphore(0); |
84 |
+ |
assertEquals(0, s0.availablePermits()); |
85 |
+ |
assertFalse(s0.isFair()); |
86 |
+ |
Semaphore s1 = new Semaphore(-1); |
87 |
+ |
assertEquals(-1, s1.availablePermits()); |
88 |
+ |
assertFalse(s1.isFair()); |
89 |
+ |
Semaphore s2 = new Semaphore(-1); |
90 |
+ |
assertEquals(-1, s2.availablePermits()); |
91 |
+ |
assertFalse(s2.isFair()); |
92 |
|
} |
93 |
|
|
94 |
|
/** |
655 |
|
} |
656 |
|
} |
657 |
|
|
658 |
+ |
/** |
659 |
+ |
* release(n) in one thread enables acquire(n) in another thread |
660 |
+ |
*/ |
661 |
+ |
public void testAcquireReleaseNInDifferentThreads_fair2() { |
662 |
+ |
final Semaphore s = new Semaphore(0, true); |
663 |
+ |
Thread t = new Thread(new Runnable() { |
664 |
+ |
public void run() { |
665 |
+ |
try { |
666 |
+ |
s.acquire(2); |
667 |
+ |
s.acquire(2); |
668 |
+ |
s.release(4); |
669 |
+ |
} catch(InterruptedException ie){ |
670 |
+ |
threadUnexpectedException(); |
671 |
+ |
} |
672 |
+ |
} |
673 |
+ |
}); |
674 |
+ |
try { |
675 |
+ |
t.start(); |
676 |
+ |
Thread.sleep(SHORT_DELAY_MS); |
677 |
+ |
s.release(6); |
678 |
+ |
s.acquire(2); |
679 |
+ |
s.acquire(2); |
680 |
+ |
s.release(2); |
681 |
+ |
t.join(); |
682 |
+ |
} catch( InterruptedException e){ |
683 |
+ |
unexpectedException(); |
684 |
+ |
} |
685 |
+ |
} |
686 |
+ |
|
687 |
+ |
|
688 |
+ |
|
689 |
|
|
690 |
|
|
691 |
|
/** |
899 |
|
} |
900 |
|
} |
901 |
|
|
902 |
+ |
/** |
903 |
+ |
* toString indicates current number of permits |
904 |
+ |
*/ |
905 |
+ |
public void testToString() { |
906 |
+ |
Semaphore s = new Semaphore(0); |
907 |
+ |
String us = s.toString(); |
908 |
+ |
assertTrue(us.indexOf("Permits = 0") >= 0); |
909 |
+ |
s.release(); |
910 |
+ |
String s1 = s.toString(); |
911 |
+ |
assertTrue(s1.indexOf("Permits = 1") >= 0); |
912 |
+ |
s.release(); |
913 |
+ |
String s2 = s.toString(); |
914 |
+ |
assertTrue(s2.indexOf("Permits = 2") >= 0); |
915 |
+ |
} |
916 |
|
|
917 |
|
} |