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