use of org.nustaq.kontraktor.util.Hoarde in project kontraktor by RuedigerMoeller.
the class HoardeTest method testGenericAct.
private void testGenericAct(ArrayList toEncode, int threads, int max, boolean verify) throws InterruptedException {
int actcount = 0;
Hoarde<DecAct> oc = new Hoarde<DecAct>(threads, DecAct.class);
oc.each(dec -> dec.init());
AtomicInteger count = new AtomicInteger(0);
AtomicInteger lastVal = new AtomicInteger(-1);
while (actcount < max) {
long tim = System.currentTimeMillis();
for (int i = 0; i < toEncode.size(); i++) {
HashMap<Object, Object> toEnc = (HashMap<Object, Object>) toEncode.get(i);
oc.ordered(act -> {
return act.decode(toEnc);
}).then((r, e) -> {
count.incrementAndGet();
if (verify) {
HashMap o = (HashMap) FSTConfiguration.getDefaultConfiguration().asObject((byte[]) r);
Integer value = (Integer) ((Object[]) o.get("VALUE"))[0];
if (lastVal.get() != value.intValue() - 1)
System.out.println("ERROR " + value + " " + lastVal);
lastVal.set(value.intValue());
}
});
}
while (count.get() < 1000000) {
LockSupport.parkNanos(1000 * 1000);
}
System.out.println("time Actor: " + (System.currentTimeMillis() - tim) + " " + count.get());
count.set(0);
actcount++;
}
oc.each((act) -> act.stop());
}
Aggregations