001 /* 002 003 $Id: Mutex.java,v 1.1 2003/03/25 20:33:49 culdesac Exp $ 004 005 */ 006 007 package sharpster.common; 008 009 /** 010 * 011 */ 012 public class Mutex { 013 014 private boolean locked; 015 016 /** 017 * Constructs a client communication object 018 */ 019 public Mutex() { 020 locked = false; 021 } 022 023 synchronized public void acquire() { 024 while (locked == true) { 025 try { 026 this.wait(); 027 } catch (Exception e) { 028 /* ignore */ 029 } 030 } 031 032 locked = true; 033 } 034 035 synchronized public void release() { 036 locked = false; 037 /* notify any waiting threads on this mutex to wake up */ 038 this.notifyAll(); 039 } 040 } 041 042