Warning: session_start(): open(/var/lib/php/sessions/sess_8d4ljktskti0t8g2v6bktc68pa, 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
sclass MultiSleeper extends RestartableCountdown is ISleeper_v2 {
new TreeMultiMap entries;
void check {
var time = nextWakeUpTime();
var action = firstValue(entries);
setTargetTime(time == null ? 0 : time.sysTime(), r {
L toCall;
synchronized(MultiSleeper.this) {
toCall = entries.get(time);
entries.remove(time);
}
check();
pcallFAll(toCall);
});
}
// API
synchronized Timestamp nextWakeUpTime() {
ret firstKey(entries);
}
public Sleeping synchronized doLater(Timestamp targetTime, Runnable r) {
if (r == null || targetTime == null) ret;
entries.put(targetTime, r);
check();
}
}