зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1668867 - PProfiler control functions return a completion promise - r=canaltinova
The returned promise is resolved when the child has completed its operation. Differential Revision: https://phabricator.services.mozilla.com/D139332
This commit is contained in:
Родитель
2fa78ca017
Коммит
4d50543faa
|
@ -18,13 +18,14 @@ namespace mozilla {
|
|||
async protocol PProfiler
|
||||
{
|
||||
child:
|
||||
async Start(ProfilerInitParams params);
|
||||
async EnsureStarted(ProfilerInitParams params);
|
||||
async Stop();
|
||||
async Pause();
|
||||
async Resume();
|
||||
async PauseSampling();
|
||||
async ResumeSampling();
|
||||
// The unused returned value is to have a promise we can await.
|
||||
async Start(ProfilerInitParams params) returns (bool unused);
|
||||
async EnsureStarted(ProfilerInitParams params) returns (bool unused);
|
||||
async Stop() returns (bool unused);
|
||||
async Pause() returns (bool unused);
|
||||
async Resume() returns (bool unused);
|
||||
async PauseSampling() returns (bool unused);
|
||||
async ResumeSampling() returns (bool unused);
|
||||
|
||||
async AwaitNextChunkManagerUpdate() returns (ProfileBufferChunkManagerUpdate update);
|
||||
async DestroyReleasedChunksAtOrBefore(TimeStamp timeStamp);
|
||||
|
|
|
@ -156,7 +156,7 @@ void ProfilerChild::ResetChunkManager() {
|
|||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvStart(
|
||||
const ProfilerInitParams& params) {
|
||||
const ProfilerInitParams& params, StartResolver&& aResolve) {
|
||||
nsTArray<const char*> filterArray;
|
||||
for (size_t i = 0; i < params.filters().Length(); ++i) {
|
||||
filterArray.AppendElement(params.filters()[i].get());
|
||||
|
@ -168,11 +168,12 @@ mozilla::ipc::IPCResult ProfilerChild::RecvStart(
|
|||
|
||||
SetupChunkManager();
|
||||
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvEnsureStarted(
|
||||
const ProfilerInitParams& params) {
|
||||
const ProfilerInitParams& params, EnsureStartedResolver&& aResolve) {
|
||||
nsTArray<const char*> filterArray;
|
||||
for (size_t i = 0; i < params.filters().Length(); ++i) {
|
||||
filterArray.AppendElement(params.filters()[i].get());
|
||||
|
@ -185,32 +186,40 @@ mozilla::ipc::IPCResult ProfilerChild::RecvEnsureStarted(
|
|||
|
||||
SetupChunkManager();
|
||||
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvStop() {
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvStop(StopResolver&& aResolve) {
|
||||
ResetChunkManager();
|
||||
profiler_stop();
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvPause() {
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvPause(PauseResolver&& aResolve) {
|
||||
profiler_pause();
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvResume() {
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvResume(ResumeResolver&& aResolve) {
|
||||
profiler_resume();
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvPauseSampling() {
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvPauseSampling(
|
||||
PauseSamplingResolver&& aResolve) {
|
||||
profiler_pause_sampling();
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvResumeSampling() {
|
||||
mozilla::ipc::IPCResult ProfilerChild::RecvResumeSampling(
|
||||
ResumeSamplingResolver&& aResolve) {
|
||||
profiler_resume_sampling();
|
||||
aResolve(/* unused */ true);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
|
|
|
@ -45,14 +45,18 @@ class ProfilerChild final : public PProfilerChild,
|
|||
private:
|
||||
virtual ~ProfilerChild();
|
||||
|
||||
mozilla::ipc::IPCResult RecvStart(const ProfilerInitParams& params) override;
|
||||
mozilla::ipc::IPCResult RecvStart(const ProfilerInitParams& params,
|
||||
StartResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvEnsureStarted(
|
||||
const ProfilerInitParams& params) override;
|
||||
mozilla::ipc::IPCResult RecvStop() override;
|
||||
mozilla::ipc::IPCResult RecvPause() override;
|
||||
mozilla::ipc::IPCResult RecvResume() override;
|
||||
mozilla::ipc::IPCResult RecvPauseSampling() override;
|
||||
mozilla::ipc::IPCResult RecvResumeSampling() override;
|
||||
const ProfilerInitParams& params,
|
||||
EnsureStartedResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvStop(StopResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvPause(PauseResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvResume(ResumeResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvPauseSampling(
|
||||
PauseSamplingResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvResumeSampling(
|
||||
ResumeSamplingResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvAwaitNextChunkManagerUpdate(
|
||||
AwaitNextChunkManagerUpdateResolver&& aResolve) override;
|
||||
mozilla::ipc::IPCResult RecvDestroyReleasedChunksAtOrBefore(
|
||||
|
|
Загрузка…
Ссылка в новой задаче