fixes for proper proc exposure to c

This commit is contained in:
Ivan Folgueira Bande 2025-12-11 17:11:59 +01:00
parent 142a57f543
commit e0cf0c8842
No known key found for this signature in database
GPG Key ID: 3C117481F89E24A7
2 changed files with 3 additions and 5 deletions

View File

@ -184,7 +184,7 @@ proc createFFIContext*[T](): Result[ptr FFIContext[T], string] =
return ok(ctx)
proc destroyFFIContext*[T](ctx: ptr FFIContext): Result[void, string] =
proc destroyFFIContext*[T](ctx: ptr FFIContext[T]): Result[void, string] =
ctx.running.store(false)
let signaledOnTime = ctx.reqSignal.fireSync().valueOr:

View File

@ -315,8 +315,6 @@ macro registerReqFFI*(reqTypeName, reqHandler, body: untyped): untyped =
let deleteProc = buildFfiDeleteReqProc(reqTypeName, fields)
result = newStmtList(typeDef, ffiNewReqProc, deleteProc, processProc, addNewReqToReg)
# echo "Registered FFI request: " & result.repr
macro processReq*(
reqType, ctx, callback, userData: untyped, args: varargs[untyped]
): untyped =
@ -335,7 +333,7 @@ macro processReq*(
result = quote:
block:
let res = `sendCall`
if res.isErr:
if res.isErr():
let msg = "error in sendRequestToFFIThread: " & res.error
`callback`(RET_ERR, unsafeAddr msg[0], cast[csize_t](msg.len), `userData`)
return RET_ERR
@ -401,7 +399,7 @@ macro ffi*(prc: untyped): untyped =
name = procName,
params = newParams,
body = ffiBody,
pragmas = newTree(nnkPragma, ident "dynlib", ident "exportc"),
pragmas = newTree(nnkPragma, ident "dynlib", ident "exportc", ident "cdecl"),
)
var anonymousProcNode = newProc(