public class LockTester { public static void main(String[] args) throws Exception { Linker comm = null; try { String baseName = args[0]; int myId = Integer.parseInt(args[1]); int numProc = Integer.parseInt(args[2]); comm = new Linker(baseName, myId, numProc); Lock lock = null; if (args[3].equals("Lamport")) lock = new LamportMutex(comm); if (args[3].equals("RicartAgrawala")) lock = new RAMutex(comm); if (args[3].equals("DiningPhil")) lock = new DinMutex(comm); if (args[3].equals("CircToken")) lock = new CircToken(comm,0); for (int i = 0; i < numProc; i++) if (i != myId) (new ListenerThread(i, (MsgHandler)lock)).start(); while (true) { System.out.println(myId + " is not in CS"); Util.mySleep(2000); lock.requestCS(); Util.mySleep(2000); System.out.println(myId + " is in CS *****"); lock.releaseCS(); } } catch (InterruptedException e) { if (comm != null) comm.close(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } }