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

বিকল্পভাবে, আপনি যেকোন সময় স্যান্ডবক্সীকে মেরে ফেলতে পারেন, তবে এখনও AwaitResult() কল করার পরামর্শ দেওয়া হচ্ছে কারণ এর মধ্যে অন্য কারণে স্যান্ডবক্সী বন্ধ হয়ে যেতে পারে:

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

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

বিকল্পভাবে, আপনি যেকোন সময় স্যান্ডবক্সীকে মেরে ফেলতে পারেন, তবে এখনও AwaitResult() কল করার পরামর্শ দেওয়া হচ্ছে কারণ এর মধ্যে অন্য কারণে স্যান্ডবক্সী বন্ধ হয়ে যেতে পারে:

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