SingleShot::~SingleShot() {
ScopeLogger("id: %d", id_);
- int ret = ml_single_close(handle_);
- if (ML_ERROR_NONE != ret) {
- LoggerW("ml_single_close failed: %d (%s)", ret, get_error_message(ret));
+ int ret = 0;
+ if (handle_ != nullptr) {
+ ret = ml_single_close(handle_);
+ if (ML_ERROR_NONE != ret) {
+ LoggerW("ml_single_close failed: %d (%s)", ret, get_error_message(ret));
+ }
}
// not dynamic mode uses ml_single_invoke_fast, which reuses handles, so they need to be freed
if (!dynamic_mode_) {
return util::ToPlatformResult(ret, "Failed to close");
}
+ handle_ = nullptr;
return PlatformResult{};
}