6. Zamykam piaskownicę
W zależności od sposobu uruchomienia piaskownicy (patrz ten krok) musisz dostosować sposób jej zamykania, a tym samym także trybu piaskownicy.
Synchronizowane wychodzenie z piaskownicy
Jeśli piaskownica działała synchronicznie, uruchomienie powróci dopiero po zakończeniu działania piaskownicy. W związku z tym nie musisz robić nic więcej. Fragment kodu poniżej pokazuje taką sytuację:
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
Asynchroniczne wychodzenie z piaskownicy
Jeśli piaskownica działała asynchronicznie, możesz ją zamknąć na 2 sposoby. Możesz poczekać na zakończenie działania obszaru piaskownicy i otrzymać ostateczny stan wykonania:
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
Możesz też zamknąć użytkownika piaskownicy w dowolnym momencie, ale nadal zalecamy wywołanie AwaitResult()
, ponieważ w międzyczasie może on zostać zamknięty z innego powodu:
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();