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 Mutex instance = new Mutex();
44 class R implements Runnable {
52 instance.readAccess(r);
53 assertEquals("One call to runnable", 1, r.cnt);
58 public void usePrivileged() {
59 Mutex.Privileged lock = new Mutex.Privileged();
60 Mutex mutex = new Mutex(lock);
62 // BEGIN: mutex.privileged
63 lock.enterReadAccess();
67 lock.exitReadAccess();
69 // END: mutex.privileged