6. الخروج من وضع الحماية

استنادًا إلى كيفية تشغيل وضع الحماية (راجع هذه الخطوة)، يجب تعديل طريقة إنهاء وضع الحماية، وبالتالي تشغيل وضع الحماية أيضًا.

الخروج من وضع حماية يعمل بشكل متزامن

إذا كان وضع الحماية يعمل بشكل متزامن، فلن يتم تشغيل وضع الحماية إلا عند انتهاء وضع الحماية. لذلك، ليس عليك اتّخاذ أيّ خطوة إضافية لإنهاء الحساب. يوضح مقتطف الرمز أدناه هذا السيناريو:

Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();

الخروج من وضع حماية يتم تشغيله بشكل غير متزامن

وإذا كان وضع الحماية يعمل بشكل غير متزامن، يتوفر خياران للإنهاء. أولاً، يمكنك الانتظار حتى اكتمال وضع الحماية والحصول على حالة التنفيذ النهائية:

sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();

بدلاً من ذلك، يمكنك إنهاء حماية شخصية Sandboxee في أي وقت، ولكن لا يزال من المستحسن الاتصال بـ AwaitResult() لأنه قد يتم إنهاء حساب Sandboxee لسبب آخر في الوقت الحالي:

s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();