public static void blockUntilStageTerminated(GraphManager gm, PronghornStage stageToWatch) { //keep waiting until this stage starts it shut down or completed its shutdown, //eg return on leading edge as soon as we detect shutdown in progress.. while (! (isStageShuttingDown(gm, stageToWatch.stageId)||isStageTerminated(gm, stageToWatch.stageId)) ) { try { Thread.sleep(1); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
public static boolean blockUntilStageTerminated(GraphManager gm, PronghornStage stageToWatch, long timeoutMS) { //keep waiting until this stage starts it shut down or completed its shutdown, //eg return on leading edge as soon as we detect shutdown in progress.. while (--timeoutMS>=0 && (! (isStageShuttingDown(gm, stageToWatch.stageId)||isStageTerminated(gm, stageToWatch.stageId))) ) { try { Thread.sleep(1); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return true; } } return timeoutMS>=0; }
@Override public boolean awaitTermination(long timeout, TimeUnit unit) { if (!shutdownRequested.get()) { throw new UnsupportedOperationException("call shutdown before awaitTerminination"); } long limit = System.nanoTime()+unit.toNanos(timeout); if (isRunning.get()!=2) { //wait until we get shutdown or timeout. while (!isRunning.compareAndSet(0, 2)) { Thread.yield(); if (System.nanoTime()>limit) { return false; } } } int s = stages.length; while (--s>=0) { PronghornStage stage = stages[s]; if (null != stage && !GraphManager.isStageTerminated(graphManager, stage.stageId)) { GraphManager.shutdownStage(graphManager, stage); GraphManager.setStateToShutdown(graphManager, stage.stageId); } } return true; }
@Override public void shutdown() { if (shutdownRequested.compareAndSet(false, true)) { int s = stages.length; while (--s>=0) { //ensure every non terminated stage gets shutdown called. if (null!=stages[s] && !GraphManager.isStageTerminated(graphManager, stages[s].stageId)) { GraphManager.shutdownStage(graphManager, stages[s]); GraphManager.setStateToShutdown(graphManager, stages[s].stageId); //System.err.println("terminated "+stages[s]+" "+GraphManager.isStageTerminated(graphManager, stages[s].stageId)); } } PronghornStage temp = lastRunStage; if (null!=temp) { logger.info("ERROR: this stage was called but never returned {}",temp); } } }
@Override public boolean awaitTermination(long timeout, TimeUnit unit) { if (!shutdownRequested.get()) { throw new UnsupportedOperationException("call shutdown before awaitTerminination"); } long limit = System.nanoTime() + unit.toNanos(timeout); if (isRunning.get() != 2) { //wait until we get shutdown or timeout. while (!isRunning.compareAndSet(0, 2)) { Thread.yield(); if (System.nanoTime() > limit) { return false; } } } int s = stages.length; while (--s >= 0) { PronghornStage stage = stages[s]; if (null != stage && !GraphManager.isStageTerminated(graphManager, stage.stageId)) { GraphManager.shutdownStage(graphManager, stage); GraphManager.setStateToShutdown(graphManager, stage.stageId); } } return true; }
private static boolean processShutdown(GraphManager graphManager, PronghornStage stage) { if (!GraphManager.isStageTerminated(graphManager, stage.stageId)) { GraphManager.shutdownStage(graphManager, stage); GraphManager.setStateToShutdown(graphManager, stage.stageId); } return false; }
if (null != stages[s]) { if (!GraphManager.isStageTerminated(graphManager, stages[s].stageId)) { GraphManager.shutdownStage(graphManager, stages[s]); GraphManager.setStateToShutdown(graphManager, stages[s].stageId);
while (++i<m.stageIdToStage.length) { if (null!=m.stageIdToStage[i]) { if (!isStageTerminated(m, i) ) { PronghornStage stage = getStage(m,i); StageScheduler.logger.error(" Expected stage {} to be stopped but it appears to be running. terminated:{}", stage, isStageTerminated(m, i)); logOutputs(StageScheduler.logger, m, stage); StageScheduler.logger.error("-------------------");//divide the log for better clarity
if (isStageTerminated(m, stageId)) { //terminated return false; count++; int ringConsumerId = GraphManager.getRingConsumerId(m, pipeId); noConsumers = noConsumers & (ringConsumerId<0 || isStageTerminated(m,ringConsumerId));
scheduler.startup(); while (!GraphManager.isStageTerminated(gm, watch.stageId) ) { scheduler.run(); Thread.yield();
while ( (!GraphManager.isStageTerminated(gm, lastStage1.stageId)) || (!GraphManager.isStageTerminated(gm, lastStage2.stageId))) { scheduler.run();
if (!GraphManager.isStageTerminated(graphManager, stage.stageId)) { GraphManager.shutdownStage(graphManager, stage); GraphManager.setStateToShutdown(graphManager, stage.stageId);
scheduler.startup(); while (!GraphManager.isStageTerminated(gm, lastStage.stageId)) { scheduler.run();
while ( (!GraphManager.isStageTerminated(gm, watch.stageId)) ) { scheduler.run();
while (!GraphManager.isStageTerminated(gm, watch.stageId)) { scheduler.run();