diff --git a/ffi/ffi_context.nim b/ffi/ffi_context.nim index b288b10..b9f2dab 100644 --- a/ffi/ffi_context.nim +++ b/ffi/ffi_context.nim @@ -229,16 +229,16 @@ proc createFFIContext*[T](): Result[ptr FFIContext[T], string] = proc destroyFFIContext*[T](ctx: ptr FFIContext[T]): Result[void, string] = ctx.running.store(false) + defer: + joinThread(ctx.ffiThread) + joinThread(ctx.watchdogThread) + ctx.cleanUpResources() let signaledOnTime = ctx.reqSignal.fireSync().valueOr: return err("error in destroyFFIContext: " & $error) if not signaledOnTime: return err("failed to signal reqSignal on time in destroyFFIContext") - joinThread(ctx.ffiThread) - joinThread(ctx.watchdogThread) - ctx.cleanUpResources() - return ok() template checkParams*(ctx: ptr FFIContext, callback: FFICallBack, userData: pointer) =