1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/deadlock/src/org/apidesign/deadlock/SynchronizedFields.java Sat Jun 14 09:54:28 2008 +0200
1.3 @@ -0,0 +1,26 @@
1.4 +package org.apidesign.deadlock;
1.5 +
1.6 +public final class SynchronizedFields {
1.7 + // BEGIN: deadlock.holdsLock
1.8 + private int counter;
1.9 +
1.10 + private int getCounter() {
1.11 + assert Thread.holdsLock(this);
1.12 + return counter;
1.13 + }
1.14 +
1.15 + private void setCounter(int c) {
1.16 + assert Thread.holdsLock(this);
1.17 + counter = c;
1.18 + }
1.19 + // END: deadlock.holdsLock
1.20 +
1.21 +
1.22 + public synchronized void increment() {
1.23 + setCounter(getCounter() + 1);
1.24 + }
1.25 +
1.26 + public void unsafeDecrement() {
1.27 + setCounter(getCounter() - 1);
1.28 + }
1.29 +}