Warning: session_start(): open(/var/lib/php/sessions/sess_gug9i4flholithkkd8060f9860, 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
sbool parallelMap2_debug;
static L parallelMap2(Collection l, F1 f) {
if (l(l) <= 1)
ret map(f, it);
ret parallelMap2(iterator(l), l(l), f);
}
static L parallelMap2(Iterator it, final int count, final F1 f) ctex {
int poolSize = coresToUse_fixed(), queueSize = 500;
if (poolSize == 1)
ret map(f, iterable(it));
new LPair out;
NotifyingBlockingThreadPoolExecutor e = new(poolSize, queueSize, 15, TimeUnit.SECONDS);
if (parallelMap2_debug)
print("parallelMap2: " + count + " elements, " + poolSize + " threads");
long time = sysNow();
try {
int i = 0;
for (final A o : iterable(it)) {
++i;
final int _i = i;
e.execute(r { pcall {
B x = callF(f, o);
synchronized(out) {
out.add(pair(x, _i));
}
}});
}
/*if (parallelMap2_debug)
print("parallelMap2: scheduling done after " + (sysNow()-time));*/
e.shutdown();
e.awaitTermination(1, TimeUnit.DAYS);
} finally {
e.shutdown();
}
if (parallelMap2_debug)
print("parallelMap2: main done after " + (sysNow()-time));
ret firstOfPairs(sortBySecondOfPairs_inPlace(out));
}
static L lambdaMapLike parallelMap2(IF1 f, Cl l) {
ret parallelMap2(l, if1ToF1(f));
}