From: <dm...@us...> - 2010-11-01 17:48:38
|
Revision: 3857 http://bigdata.svn.sourceforge.net/bigdata/?rev=3857&view=rev Author: dmacgbr Date: 2010-11-01 17:48:31 +0000 (Mon, 01 Nov 2010) Log Message: ----------- Modify processing of shutdown and halt states of inner class AcceptTask to ensure that all resources are tidied up. Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/concurrent/NonBlockingLockManagerWithNewDesign.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/concurrent/NonBlockingLockManagerWithNewDesign.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/concurrent/NonBlockingLockManagerWithNewDesign.java 2010-11-01 16:01:41 UTC (rev 3856) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/concurrent/NonBlockingLockManagerWithNewDesign.java 2010-11-01 17:48:31 UTC (rev 3857) @@ -29,6 +29,7 @@ import static com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.ServiceRunState.Running; import static com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.ServiceRunState.Shutdown; +import static com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.ServiceRunState.ShutdownNow; import static com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.ServiceRunState.Starting; import java.lang.ref.WeakReference; @@ -58,6 +59,8 @@ import org.apache.log4j.Logger; import com.bigdata.cache.ConcurrentWeakValueCacheWithTimeout; +import com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.LockFutureTask; +import com.bigdata.concurrent.NonBlockingLockManagerWithNewDesign.ResourceQueue; import com.bigdata.counters.CounterSet; import com.bigdata.counters.Instrument; import com.bigdata.journal.AbstractTask; @@ -2098,7 +2101,7 @@ log.info(lockManager.serviceRunState); } // Done. - return; + awaitStateChange(ShutdownNow); } finally { lockManager.lock.unlock(); } @@ -2106,6 +2109,8 @@ case Halted: { if (INFO) log.info(lockManager.serviceRunState); + // stop the service running for this task. + lockManager.service.shutdown () ; // Done. return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |