public class CV {

    public void cv_wait(Mutex m) {
        try {
            synchronized(this) {
                m.unlock();
                wait();
            } 
        } catch(InterruptedException ie) {
        } finally {
            m.lock();
        }
    }

    public synchronized void cv_notify() {
        notify();
    }
}
