19 package org.matsim.core.mobsim.framework;
21 import java.util.concurrent.Phaser;
22 import java.util.concurrent.Semaphore;
45 private final Semaphore
access =
new Semaphore(1,
true);
65 }
catch (InterruptedException e) {
75 stepDone.arriveAndAwaitAdvance();
82 localTime = Double.MAX_VALUE;
83 stepDone.arriveAndDeregister();
92 throw new IllegalStateException();
94 while (localTime < time) {
95 stepDone.arriveAndAwaitAdvance();
113 stepDone.arriveAndDeregister();
125 return (localTime == Double.MAX_VALUE);
volatile double localTime
void notifyMobsimAfterSimStep(MobsimAfterSimStepEvent event)
PlayPauseSimulationControl(ObservableMobsim qSim)
final double getLocalTime()
void notifyMobsimBeforeSimStep(MobsimBeforeSimStepEvent event)
void addQueueSimulationListeners(final MobsimListener listener)
final void doStep(int time)
final boolean isFinished()
double getSimulationTime()
void notifyMobsimBeforeCleanup(MobsimBeforeCleanupEvent e)
final Semaphore getAccess()