Resolve "Parallel scan test fails"
Closes #1182 (closed)
The event processing is using a dictionary to group events by kind.
As result the strict sequence of events can be lost when many scans are executed in parallel.
-------------- first bunch of events
SCAN 1 - NEW
-------------- second bunch of events
SCAN 1 - NEW CHILD
SCAN 2 - NEW
SCAN 2 - NEW CHILD
Here SCAN 1 - NEW CHILD
and SCAN 2 - NEW CHILD
are grouped together -> Then SCAN 2 - NEW CHILD
is processed before SCAN 2 - NEW
.
This MR processes the events following the kinds first: NEW, NEW CHILD, NEW DATA, END
As result the interleave of events of many scans is still not respected, but the sequence of events for the same scan is fine.
We could achieve the same result with a much smaller patch. Using the previous loop, and iterating a fixed sequence of the key name (NEW, NEW CHILD, NEW DATA, END
) to process.
Let me know what you think.