jtulach@111: package org.apidesign.reentrant; jtulach@111: jtulach@111: import java.util.concurrent.locks.ReentrantLock; jtulach@111: jtulach@111: final class NonReentrantLock extends ReentrantLock { jtulach@111: @Override jtulach@111: public void lock() { jtulach@111: if (isHeldByCurrentThread()) { jtulach@111: throw new IllegalStateException("Attempt to reentrant lock"); jtulach@111: } jtulach@111: super.lock(); jtulach@111: } jtulach@111: jtulach@111: @Override jtulach@111: public void lockInterruptibly() throws InterruptedException { jtulach@111: if (isHeldByCurrentThread()) { jtulach@111: throw new IllegalStateException("Attempt to reentrant lock"); jtulach@111: } jtulach@111: super.lockInterruptibly(); jtulach@111: } jtulach@111: jtulach@111: }