6. 退出沙箱
視您執行沙箱的方式而定 (請參閱這個步驟),您必須調整終止沙箱的方式,連帶調整沙箱模式。
退出同步執行的沙箱
如果沙箱已同步執行,則只有在沙箱執行完畢時才會傳回「Run」。因此,您不需要採取額外的終止步驟。以下程式碼片段說明這個情況:
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
退出以非同步方式執行的沙箱
如果沙箱是以非同步方式執行,則有兩個終止選項可用。首先,您可以等到沙箱作業完成,並收到最終執行狀態:
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
或者,您也可以隨時終止沙箱,但建議您呼叫 AwaitResult()
,因為沙箱可能會因為其他原因而終止:
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();