示例#1
0
        private void FinishAwareSleep(StageExecution execution)
        {
            long endTime = _monitor.nextCheckTime();

            while (CurrentTimeMillis() < endTime)
            {
                if (!execution.StillExecuting())
                {
                    break;
                }

                try
                {
                    sleep(min(10, max(0, endTime - CurrentTimeMillis())));
                }
                catch (InterruptedException e)
                {
                    execution.Panic(e);
                    break;
                }
            }
        }