Skip to content
Permalink
Browse files

Merge pull request #9687 from narimiran/fix-7192

export `asyncdispatch.callSoon` (fixes #7192)
  • Loading branch information...
dom96 committed Nov 13, 2018
2 parents d2f7ecb + c2b16b4 commit 679a52f53c3b70aa6374eba7a8b5013b3aef76b8
Showing with 18 additions and 3 deletions.
  1. +4 −3 lib/pure/asyncdispatch.nim
  2. +14 −0 tests/async/t7192.nim
@@ -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)
@@ -0,0 +1,14 @@
discard """
output: '''
testCallback()
'''
"""

import asyncdispatch

proc testCallback() =
echo "testCallback()"

when isMainModule:
callSoon(testCallback)
poll()

0 comments on commit 679a52f

Please sign in to comment.
You can’t perform that action at this time.