mirror of
https://github.com/logos-messaging/nim-ffi.git
synced 2026-01-08 00:53:13 +00:00
fixes for proper proc exposure to c
This commit is contained in:
parent
142a57f543
commit
e0cf0c8842
@ -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:
|
||||
|
||||
@ -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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user