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