6. Uscita dalla sandbox

A seconda di come esegui la sandbox (vedi questo passaggio), devi modificare il modo in cui termini la sandbox e quindi anche la sandbox.

Uscita da una sandbox eseguita in modo sincrono

Se la sandbox è stata eseguita in modo sincrono, viene restituito il valore Run solo al termine di Sandboxee. Pertanto, non sono necessari ulteriori passaggi per la risoluzione. Lo snippet di codice riportato di seguito mostra questo scenario:

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

Uscita da una sandbox eseguita in modo asincrono

Se la sandbox è stata eseguita in modo asincrono, sono disponibili due opzioni per la terminazione. Innanzitutto, puoi attendere il completamento di Sandboxee e ricevere lo stato di esecuzione finale:

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

In alternativa, puoi eliminare Sandboxee in qualsiasi momento, ma ti consigliamo comunque di chiamare AwaitResult() perché nel frattempo potrebbe interrompersi per altri motivi:

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