commit | e56411c1092fa6cc38e8ec91aabcb7820ace1ca0 | [log] [tgz] |
---|---|---|
author | Primiano Tucci <primiano@google.com> | Fri Mar 30 01:15:02 2018 +0100 |
committer | Primiano Tucci <primiano@google.com> | Fri Mar 30 12:13:13 2018 +0000 |
tree | 1d8344ebaea933a8a3ca6b951b24fa3b2b764953 | |
parent | 996d4d7468f0857f7c192c27eaa23b15ba568ba0 [diff] |
Reset ProbesProducer's state if losing service connection Fixes a lifetime bug in traced_probes. The bug is the following: when we lose the connection to the service we reset the IPC |endpoint_| and re-attempt the connection. However the |endpoint_| is the object that owns the shared memory buffer, on which the various TraceWriter instances hold onto. We cannot destroy the |endpoint_| without guaranteeing that all the TraceWriter(s) have been destroyed as well. This CL achieves this by simply invoking the destructor (which in turn will destroy all the SinkDelegates and the various controllers) and then back the constructor, starting with a brand new instance. This, of course, relies on destruction order to be correct. But at least doesn't introduce a secondary teardown path. Bug: 77282805 Test: see repro steps of b/77282805. Change-Id: Ieec7ab934c796222fea15365ee7c98d2db75cd6d
This project is meant to be built both as part of the Android tree and from a standalone checkout
For internal docs see this page
Android is the platform targeted in the first milestones. Right now Linux desktop and OSX are maintained best-effort.
This project uses Android AOSP Gerrit for code reviews and uses the Google C++ style. Currently targets -std=c++11
.
You can use both git cl upload
from Chromium depot tools or Android repo to upload patches.
git cl
is quite convenient as it supports code auto-formatting via git cl format
.
See https://source.android.com/source/contributing for more details about external contributions and CLA signing.
See docs/build_instructions.md
Continuous build and test coverage is available at perfetto-ci.appspot.com. Trybots: CLs uploaded to gerrit are automatically submitted to TravisCI within one minute and made available on the CI page above. The relevant code lives in the infra/ directory.
$ tools/ninja -C out/default (tracing_unittests | tracing_benchmarks) $ out/default/tracing_unittests --gtest_help
Either connect a device in ADB mode or use the bundled emulator.
To start the emulator:$ tools/run_android_emulator (arm | arm64) &
To run the tests (either on the emulator or physical device):$ tools/run_android_test out/default tracing_unittests