Warning: session_start(): open(/var/lib/php/sessions/sess_49quk12ppdlub8l79qs2kkpd7e, 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
static Producer moveProducerToNewThread(Producer producer, CloseablesHolder ch, int bufferSize default 65536) {
if (producer == null) null;
SimpleCircularBuffer buffer = new(bufferSize);
new Flag done;
new Var error;
ch.add(() -> done.raise());
startThread(r {
try {
A a;
while ping (!done.isUp() && (a = producer.next()) != null) {
while (buffer.isFull() && !done.isUp()) sleep(1);
buffer.add(a);
}
} catch e {
error.set(e);
} finally {
done.raise();
}
});
ret () -> {
while true {
bool isDone = done.isUp();
A a = buffer.popFirst();
if (a != null) ret a;
if (isDone)
null;
else
sleep(1);
}
};
}