6. Korumalı alandan çıkma
Korumalı alanı nasıl çalıştırdığınıza bağlı olarak (bu adıma bakın) korumalı alanı sonlandırma şeklinizi ve ayrıca Korumalı Alan'ı ayarlamanız gerekir.
Eşzamanlı olarak çalışan bir korumalı alandan çıkma
Korumalı alan eşzamanlı olarak çalışıyorsa Çalıştır işlevi yalnızca Korumalı Alan (Korumalı Alan) bittiğinde geri döner. Bu nedenle, fesih için ek bir adım gerekli değildir. Aşağıdaki kod snippet'i bu senaryoyu gösterir:
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
Eş zamansız olarak çalışan bir korumalı alandan çıkma
Korumalı alan eşzamansız olarak çalışıyorsa sonlandırma için iki seçenek mevcuttur. Öncelikle, Sandboxee'nin tamamlanmasını bekleyebilir ve son yürütme durumunu alabilirsiniz:
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
Alternatif olarak, Sandboxee'yi istediğiniz zaman sonlandırabilirsiniz ancak bu sırada başka bir nedenden dolayı Sandboxee'yi sonlandırabileceği için AwaitResult()
çağrısı yapmanız önerilir:
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();