samples/reentrant/src/org/apidesign/reentrant/NonReentrantLock.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:54:36 +0200
changeset 111 3905a2e66b9b
permissions -rw-r--r--
Sample code with various attempts to fight with reentrant code
     1 package org.apidesign.reentrant;
     2 
     3 import java.util.concurrent.locks.ReentrantLock;
     4 
     5 final class NonReentrantLock extends ReentrantLock {
     6     @Override
     7     public void lock() {
     8         if (isHeldByCurrentThread()) {
     9             throw new IllegalStateException("Attempt to reentrant lock");
    10         }
    11         super.lock();
    12     }
    13 
    14     @Override
    15     public void lockInterruptibly() throws InterruptedException {
    16         if (isHeldByCurrentThread()) {
    17             throw new IllegalStateException("Attempt to reentrant lock");
    18         }
    19         super.lockInterruptibly();
    20     }
    21     
    22 }