mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-18 00:48:35 +00:00
Merge pull request #9687 from narimiran/fix-7192
export `asyncdispatch.callSoon` (fixes #7192)
This commit is contained in:
@@ -16,7 +16,8 @@ import asyncfutures except callSoon
|
||||
import nativesockets, net, deques
|
||||
|
||||
export Port, SocketFlag
|
||||
export asyncfutures, asyncstreams
|
||||
export asyncfutures except callSoon
|
||||
export asyncstreams
|
||||
|
||||
#{.injectStmt: newGcInvariant().}
|
||||
|
||||
@@ -199,7 +200,7 @@ proc adjustTimeout(pollTimeout: int, nextTimer: Option[int]): int {.inline.} =
|
||||
if pollTimeout == -1: return
|
||||
result = min(pollTimeout, result)
|
||||
|
||||
proc callSoon(cbproc: proc ()) {.gcsafe.}
|
||||
proc callSoon*(cbproc: proc ()) {.gcsafe.}
|
||||
|
||||
proc initCallSoonProc =
|
||||
if asyncfutures.getCallSoonProc().isNil:
|
||||
@@ -1640,7 +1641,7 @@ proc recvLine*(socket: AsyncFD): Future[string] {.async, deprecated.} =
|
||||
return
|
||||
add(result, c)
|
||||
|
||||
proc callSoon(cbproc: proc ()) =
|
||||
proc callSoon*(cbproc: proc ()) =
|
||||
## Schedule `cbproc` to be called as soon as possible.
|
||||
## The callback is called when control returns to the event loop.
|
||||
getGlobalDispatcher().callbacks.addLast(cbproc)
|
||||
|
||||
14
tests/async/t7192.nim
Normal file
14
tests/async/t7192.nim
Normal file
@@ -0,0 +1,14 @@
|
||||
discard """
|
||||
output: '''
|
||||
testCallback()
|
||||
'''
|
||||
"""
|
||||
|
||||
import asyncdispatch
|
||||
|
||||
proc testCallback() =
|
||||
echo "testCallback()"
|
||||
|
||||
when isMainModule:
|
||||
callSoon(testCallback)
|
||||
poll()
|
||||
Reference in New Issue
Block a user