Warning: session_start(): open(/var/lib/php/sessions/sess_o7s0iekfvcebu7f47hf0ksjugs, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// Note: Service providers schedule actions.
// Only puzzle runners call step().
// interface for ProbabilisticScheduler (#1031949)
sinterface IProbabilisticScheduler extends Steppable {
// schedule an action at an absolute probability
void at(double probability, Runnable action);
// schedule an action at a probability relative to
// currentProbability()
default void atRelative aka schedule(double probability, Runnable action) {
at(currentProbability()*probability, action);
}
double currentProbability(); // for thread, only while running a step
long stepCount();
double lastExecutedProbability();
default void run aka schedule aka at(Runnable x) {
if (x == null) ret;
initAction(x);
x.run();
}
default void scheduleAll(Iterable> l) {
fOr (var x : l)
at(x.probability(), x!);
}
default void initAction(Runnable action) {
if (action cast IProbabilistic)
action.setScheduler(this);
}
}