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();