public class SimpleLock implements ReadWriteLock {
    boolean working = false;

    public void beginRead() { lock(); }
    public void endRead() { unlock(); }

    public void beginWrite() { lock(); }
    public void endWrite() { unlock(); }

    protected synchronized void lock() {
	while (working) {
	    try {
		wait();
	    } catch (InterruptedException e) {
	    }
	}
	working = true;
    }

    protected synchronized void unlock() {
	working = false;
	notifyAll();
    }
}
