1 2 3 package com.db4odoc.f1.semaphores; 4 5 import com.db4o.*; 6 import com.db4o.ext.*; 7 8 14 public class LockManager { 15 16 private final String SEMAPHORE_NAME = "locked: "; 17 private final int WAIT_FOR_AVAILABILITY = 300; 19 private final ExtObjectContainer _objectContainer; 20 21 public LockManager(ObjectContainer objectContainer){ 22 _objectContainer = objectContainer.ext(); 23 } 24 25 public boolean lock(Object obj){ 26 long id = _objectContainer.getID(obj); 27 return _objectContainer.setSemaphore(SEMAPHORE_NAME + id, WAIT_FOR_AVAILABILITY); 28 } 29 30 public void unlock(Object obj){ 31 long id = _objectContainer.getID(obj); 32 _objectContainer.releaseSemaphore(SEMAPHORE_NAME + id); 33 } 34 } 35 | Popular Tags |