Trigger onPayloadStarted before spawning payload
It's really unlikely, but onPayloadReady can be triggered before
onPayloadStarted depending on the scheduler. This triggers
onPayloadStarted before spawning payload, to ensure the callback order
Started - Ready - Finished.
Bug: 201266148
Test: atest MicrodroidHostTestCases
Change-Id: I5ab0a09d9547779c542e4c4191cf19fc0257163d
diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index dc72c95..177a0db 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -240,13 +240,13 @@
/// virtualizationservice in the host side.
fn exec_task(task: &Task, service: &Strong<dyn IVirtualMachineService>) -> Result<()> {
info!("executing main task {:?}...", task);
- let mut child = build_command(task)?.spawn()?;
+ let mut command = build_command(task)?;
let local_cid = get_local_cid()?;
info!("notifying payload started");
service.notifyPayloadStarted(local_cid as i32)?;
- let exit_status = child.wait()?;
+ let exit_status = command.spawn()?.wait()?;
if let Some(code) = exit_status.code() {
info!("notifying payload finished");
service.notifyPayloadFinished(local_cid as i32, code)?;