Warning: session_start(): open(/var/lib/php/sessions/sess_cn0mqno7vbta79i6tj9a0t3pea, 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
!7
cmodule RegexpMatcher > DynPrintLogAndEnabled {
L jobs = syncLinkedList();
transient ReliableSingleThread rst;
start { rst = dm_rst(r step); }
sclass Job {
S regexp, input;
bool ignoreCase;
O whenDone; // voidfunc(Matcher)
S moduleID; // for who are we doing this
}
void step {
Job job;
while (licensed() && !retired && (job = syncPopFirst(jobs)) != null) {
pcall { doJob(r); }
}
}
void doJob(Job j) {
if (!dm_moduleExists(moduleID)) ret;
Matcher m = safeRegexpPossiblyIC(j.ignoreCase, regexp, input);
call(whenDone, m);
}
// API
void addJob(S moduleID, S regexp, S input, bool ignoreCase, O whenDone) q {
jobs.add(nu Job(+moduleID, +regexp, +input, +ignoreCase, +whenDone));
rst.trigger();
}
void deleteJobsForModule(S moduleID) q {
filterLinkedListInPlace(jobQueue, job -> eq(job.moduleID, moduleID));
}
}