Warning: session_start(): open(/var/lib/php/sessions/sess_q6nu1vlmo0gdh1mhk7i5nss1me, 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 SerializeComputations {
Map>> calculating = syncMap();
new MultiSetMap waitingFor;
B get(A a, IF1 f) {
bool meCalc;
Var> var;
synchronized {
var = calculating.get(a);
meCalc = var == null;
if (meCalc) {
var = new Var;
calculating.put(a, var);
} else
waitingFor.put(a, currentThread());
}
if (meCalc) {
OKOrError b = okOrError(() -> f.get(a));
var.set(b);
ret b!;
} else {
waitUntilNotNull(var);
synchronized {
waitingFor.remove(a, currentThread());
if (!waitingFor.containsKey(a))
calculating.remove(a);
}
ret var!!;
}
}
}