samples/deadlock/src/org/apidesign/deadlock/SynchronizedFields.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 03 Apr 2020 16:32:36 +0200
changeset 416 9ed8788a1a4e
permissions -rw-r--r--
Using HTTPS to download the libraries
     1 package org.apidesign.deadlock;
     2 
     3 public final class SynchronizedFields {
     4     // BEGIN: deadlock.holdsLock
     5     private int counter;
     6     
     7     private int getCounter() {
     8         assert Thread.holdsLock(this);
     9         return counter;
    10     } 
    11     
    12     private void setCounter(int c) {
    13         assert Thread.holdsLock(this);
    14         counter = c;
    15     }
    16     // END: deadlock.holdsLock
    17     
    18     
    19     public synchronized void increment() {
    20         setCounter(getCounter() + 1);
    21     }
    22     
    23     public void unsafeDecrement() {
    24         setCounter(getCounter() - 1);
    25     }
    26 }