public final void WindUpTask() {
   _ncacheLog.CriticalInfo("DSAsyncUpdatesProcessor", "WindUp Task Started.");
   if (_updateQueue != null) {
     _ncacheLog.CriticalInfo(
         "DSAsyncUpdatesProcessor", "Update processor Queue Count: " + _updateQueue.getCount());
   }
   _shutdownStatusLatch.SetStatusBit(ShutDownStatus.SHUTDOWN_INPROGRESS, ShutDownStatus.NONE);
   synchronized (this) {
     com.alachisoft.tayzgrid.common.threading.Monitor.pulse(this);
   }
   _ncacheLog.CriticalInfo("DSAsyncUpdatesProcessor", "WindUp Task Ended.");
 }
  public final void WaitForShutDown(long interval) {
    _ncacheLog.CriticalInfo("DSAsyncUpdatesProcessor", "Waiting for shutdown task completion.");

    if (_updateQueue.getCount() > 0) {
      _shutdownStatusLatch.WaitForAny(ShutDownStatus.SHUTDOWN_COMPLETED, interval * 1000);
    }

    if (_updateQueue != null && _updateQueue.getCount() > 0) {
      _ncacheLog.CriticalInfo(
          "DSAsyncUpdatesProcessor",
          "Remaining update processor queue operations: " + _updateQueue.getCount());
    }

    _ncacheLog.CriticalInfo("DSAsyncUpdatesProcessor", "Shutdown task completed.");
  }