6. Quitter le bac à sable
Selon la façon dont vous exécutez le bac à sable (voir cette étape), vous devez ajuster la façon dont vous mettez fin au bac à sable, et donc également au Sandboxee.
Quitter un bac à sable s'exécutant de manière synchrone
Si le bac à sable s'exécute de manière synchrone, "Run" ne sera renvoyé qu'une fois le Sandboxee terminé. Aucune autre étape n'est donc requise pour la résiliation. L'extrait de code ci-dessous illustre ce scénario :
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
Quitter un bac à sable s'exécutant de manière asynchrone
Si le bac à sable s'exécute de manière asynchrone, deux options de résiliation sont disponibles. Tout d'abord, vous pouvez simplement attendre la fin de Sandboxee et recevoir l'état d'exécution final :
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
Vous pouvez également arrêter le Sandboxee à tout moment, mais il est toujours recommandé d'appeler AwaitResult()
, car le Sandboxee peut s'arrêter pour une autre raison entre-temps :
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();