From 53b91e1354fd350009bbd2afa078c801b4934791 Mon Sep 17 00:00:00 2001 From: Ivan FB Date: Fri, 24 Apr 2026 13:30:31 +0200 Subject: [PATCH] better resource cleanup in destroyFFIContext --- ffi/ffi_context.nim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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) =