author | Jaroslav Tulach <jtulach@netbeans.org> |
Sat, 14 Jun 2008 09:54:28 +0200 | |
changeset 103 | e492694451f6 |
permissions | -rw-r--r-- |
1 package org.apidesign.deadlock;
3 public final class SynchronizedFieldsInternally {
4 // BEGIN: deadlock.ownLock
5 private final Object LOCK = new Object();
6 private int counter;
8 private int getCounter() {
9 assert Thread.holdsLock(LOCK);
10 return counter;
11 }
13 private void setCounter(int c) {
14 assert Thread.holdsLock(LOCK);
15 counter = c;
16 }
17 // END: deadlock.ownLock
20 public void increment() {
21 synchronized (LOCK) {
22 setCounter(getCounter() + 1);
23 }
24 }
26 public void unsafeDecrement() {
27 setCounter(getCounter() - 1);
28 }
29 }