终止模拟 - AWS SimSpace Weaver

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

终止模拟

使用 Result<void> DestroyApplication(Application&& app) 可终止应用程序和模拟。

从对 BeginUpdateWillBlock()BeginUpdate() 的调用收到 ErrorCode::ShuttingDown 时,其他应用程序发现模拟正在关闭。当应用程序收到时 ErrorCode::ShuttingDown 时,可以调用 Result<void> DestroyApplication(Application&& app) 来自行终止。

例 示例
Result<void> AppDriver::EncounteredAppError(Application&& application) noexcept { const ErrorCode errorCode = WEAVERRUNTIME_EXPECT_ERROR(runAppResult); switch (errorCode) { case ErrorCode::ShuttingDown: { // insert custom shutdown process here. WEAVERRUNTIME_TRY(Api::DestroyApplication(std::move(application))); return Success(); } default: { OnAppError(errorCode); return errorCode; } } }
重要

只能在 Result<void> DestroyApplication(Application&& app) 之后调用 Api::Commit()。在更新过程中销毁应用程序可能会导致未定义的行为。

重要

您必须在程序退出之前调用 DestroyApplication(),以确保应用程序报告为成功终止。

程序退出时未能调用 DestroyApplication() 将导致状态报告为 FATAL