mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-06 07:38:24 +00:00
* fixes #18858 [backport] * ensure async tests work with --experimental:strictEffects [backport] * ensure async tests work with --experimental:strictEffects [backport]
This commit is contained in:
@@ -93,7 +93,7 @@ proc setCallSoonProc*(p: (proc(cbproc: proc ()) {.gcsafe.})) =
|
||||
## Change current implementation of `callSoon`. This is normally called when dispatcher from `asyncdispatcher` is initialized.
|
||||
callSoonProc = p
|
||||
|
||||
proc callSoon*(cbproc: proc ()) =
|
||||
proc callSoon*(cbproc: proc () {.gcsafe.}) =
|
||||
## Call `cbproc` "soon".
|
||||
##
|
||||
## If async dispatcher is running, `cbproc` will be executed during next dispatcher tick.
|
||||
|
||||
@@ -330,12 +330,16 @@ proc countProcessors*(): int {.rtl, extern: "nosp$1".} =
|
||||
## It is implemented just calling `cpuinfo.countProcessors`.
|
||||
result = cpuinfo.countProcessors()
|
||||
|
||||
when not defined(nimHasEffectsOf):
|
||||
{.pragma: effectsOf.}
|
||||
|
||||
proc execProcesses*(cmds: openArray[string],
|
||||
options = {poStdErrToStdOut, poParentStreams}, n = countProcessors(),
|
||||
beforeRunEvent: proc(idx: int) = nil,
|
||||
afterRunEvent: proc(idx: int, p: Process) = nil):
|
||||
int {.rtl, extern: "nosp$1",
|
||||
tags: [ExecIOEffect, TimeEffect, ReadEnvEffect, RootEffect].} =
|
||||
tags: [ExecIOEffect, TimeEffect, ReadEnvEffect, RootEffect],
|
||||
effectsOf: [beforeRunEvent, afterRunEvent].} =
|
||||
## Executes the commands `cmds` in parallel.
|
||||
## Creates `n` processes that execute in parallel.
|
||||
##
|
||||
|
||||
@@ -705,8 +705,11 @@ proc capitalize*(s: string): string {.noSideEffect,
|
||||
fastRuneAt(s, i, rune, doInc = true)
|
||||
result = $toUpper(rune) & substr(s, i)
|
||||
|
||||
when not defined(nimHasEffectsOf):
|
||||
{.pragma: effectsOf.}
|
||||
|
||||
proc translate*(s: string, replacements: proc(key: string): string): string {.
|
||||
rtl, extern: "nuc$1".} =
|
||||
rtl, extern: "nuc$1", effectsOf: replacements.} =
|
||||
## Translates words in a string using the ``replacements`` proc to substitute
|
||||
## words inside ``s`` with their replacements.
|
||||
##
|
||||
|
||||
1
tests/async/nim.cfg
Normal file
1
tests/async/nim.cfg
Normal file
@@ -0,0 +1 @@
|
||||
--experimental:strictEffects
|
||||
Reference in New Issue
Block a user