sclass ReliableSingleThread_Multi {
IVF1 processObject;
int delay; // delay before changes are processed
// internal
Set changedObjects = synchroSet();
ReliableSingleThread rst = new(r _process);
// notify of change in object
void add(A a) {
if (syncAdd(changedObjects, a))
rst.trigger();
}
// internal
void _process {
sleep(delay);
for (A object : cloneAndClearList(changedObjects))
pcallF(processObject, object);
}
}