1 24 package org.objectweb.jalisto.se.impl.lock; 25 26 public class AccessController { 27 public AccessController() { 28 canGetAccess = new boolean[2]; 29 canGetAccess[NEW_OID] = true; 30 canGetAccess[COMMIT_ROLLBACK_LOCKMANAGER] = true; 31 } 32 33 public void getAccessControl(int accessIndex) { 34 while (!getAccess(accessIndex)) { 35 Thread.yield(); 36 } 37 } 38 39 private synchronized boolean getAccess(int accessIndex) { 40 if (!canGetAccess[accessIndex]) { 41 return false; 42 } 43 canGetAccess[accessIndex] = false; 44 return true; 45 } 46 47 public synchronized void releaseAccessControl(int accessIndex) { 48 canGetAccess[accessIndex] = true; 49 } 50 51 private boolean[] canGetAccess; 52 53 public final static int NEW_OID = 0; 54 public final static int COMMIT_ROLLBACK_LOCKMANAGER = 1; 55 } 56 | Popular Tags |