tmf: Introduce dependency level for event requests
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Mon, 18 Apr 2016 10:58:43 +0000 (06:58 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 4 May 2016 10:37:40 +0000 (06:37 -0400)
commit6eaea67d071aaf9d444f77748a562f688d0a5c87
treefb892a990ac03ab13a7947e1a037d279e0cb2ad0
parent8a8d14a28d020ea899bc558bf5cc956d06f6a04e
tmf: Introduce dependency level for event requests

Requests with the same dependency level that are compatible otherwise
can be serviced by the event provider together. In TMF, the
TmfEventProvider will coalesce these requests together to a coalesced
event request so the trace is read once and the events are dispatched
to each sub-request.

If these request are not on the same dependency level, then each
request will be serviced separately by the event provider.

This can be useful, when a request has to wait for a condition to
happen in another event request. It can block its request till that
condition is met. If both request were coalesced the coalesced request
will deadlock by one request.

Side effects of this patch:
- Traces (TmfTrace) will be read concurrently when using different
dependency levels. The event request scheduler of the TmfEventProvider
will take care of scheduling each request.
- In an experiment, requests may not be serviced by the same
TmfEventProvider, some may be serviced by the TmfExperiment, some
by the children traces (TmfTrace).

Change-Id: I2b2e143bc8dc9cd8d1707b033715cbb05a529401
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70864
Reviewed-by: Hudson CI
Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/component/TmfEventProviderCoalescingTest.java
tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/request/TmfCoalescedEventRequestTest.java
tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/request/TmfEventRequestTest.java
tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/request/TmfEventRequestStub.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/request/TmfCoalescedEventRequest.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/component/TmfEventProvider.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/request/ITmfEventRequest.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/request/TmfEventRequest.java
This page took 0.027117 seconds and 5 git commands to generate.