3 import org.apidesign.privileged.api.Mutex;
4 import org.junit.After;
5 import org.junit.AfterClass;
6 import org.junit.Before;
7 import org.junit.BeforeClass;
9 import static org.junit.Assert.*;
11 public class MutexTest {
13 private static final Mutex.Privileged PRIVILEGED = new Mutex.Privileged();
14 public static final Mutex MUTEX = new Mutex(PRIVILEGED);
21 public static void setUpClass() throws Exception {
25 public static void tearDownClass() throws Exception {
33 public void tearDown() {
37 * Test of readAccess method, of class Mutex.
40 public void readAccess() {
41 class R implements Runnable {
49 Mutex instance = new Mutex();
50 instance.readAccess(r);
51 assertEquals("One call to runnable", 1, r.cnt);
55 public void usePrivileged() {
56 Mutex.Privileged lock = new Mutex.Privileged();
57 Mutex mutex = new Mutex(lock);
59 // BEGIN: mutex.privileged
60 lock.enterReadAccess();
64 lock.exitReadAccess();
66 // END: mutex.privileged