mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-04 06:53:12 +00:00
Adapt gcsafe pragma for RequestBroker sync requests and provider signatures as requirement
This commit is contained in:
parent
a308e83959
commit
130ebd7509
@ -212,7 +212,7 @@ proc makeProcType(
|
|||||||
let raisesPragma = newTree(
|
let raisesPragma = newTree(
|
||||||
nnkExprColonExpr, ident("raises"), newTree(nnkBracket, ident("CatchableError"))
|
nnkExprColonExpr, ident("raises"), newTree(nnkBracket, ident("CatchableError"))
|
||||||
)
|
)
|
||||||
let pragmas = newTree(nnkPragma, raisesPragma)
|
let pragmas = newTree(nnkPragma, raisesPragma, ident("gcsafe"))
|
||||||
newTree(nnkProcTy, formal, pragmas)
|
newTree(nnkProcTy, formal, pragmas)
|
||||||
|
|
||||||
proc parseMode(modeNode: NimNode): RequestBrokerMode =
|
proc parseMode(modeNode: NimNode): RequestBrokerMode =
|
||||||
@ -499,7 +499,7 @@ proc generateRequestBroker(body: NimNode, mode: RequestBrokerMode): NimNode =
|
|||||||
quote do:
|
quote do:
|
||||||
proc request*(
|
proc request*(
|
||||||
_: typedesc[`typeIdent`]
|
_: typedesc[`typeIdent`]
|
||||||
): Result[`typeIdent`, string] {.raises: [].} =
|
): Result[`typeIdent`, string] {.gcsafe, raises: [].} =
|
||||||
let provider = `accessProcIdent`().`zeroArgFieldName`
|
let provider = `accessProcIdent`().`zeroArgFieldName`
|
||||||
if provider.isNil():
|
if provider.isNil():
|
||||||
return err(
|
return err(
|
||||||
@ -564,7 +564,7 @@ proc generateRequestBroker(body: NimNode, mode: RequestBrokerMode): NimNode =
|
|||||||
{.async: (raises: []), gcsafe.}
|
{.async: (raises: []), gcsafe.}
|
||||||
of rbSync:
|
of rbSync:
|
||||||
quote:
|
quote:
|
||||||
{.raises: [].}
|
{.gcsafe, raises: [].}
|
||||||
var providerCall = newCall(providerSym)
|
var providerCall = newCall(providerSym)
|
||||||
for argName in argNameIdents:
|
for argName in argNameIdents:
|
||||||
providerCall.add(argName)
|
providerCall.add(argName)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user