added test
This commit is contained in:
parent
55250b3f36
commit
ca8135f34b
1 changed files with 44 additions and 0 deletions
44
tests/closure/tforum.nim
Normal file
44
tests/closure/tforum.nim
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
discard """
|
||||||
|
output: '''asdas
|
||||||
|
processClient end
|
||||||
|
false
|
||||||
|
'''
|
||||||
|
"""
|
||||||
|
|
||||||
|
type
|
||||||
|
PAsyncHttpServer = ref object
|
||||||
|
value: string
|
||||||
|
PFutureBase = ref object
|
||||||
|
callback: proc () {.closure.}
|
||||||
|
value: string
|
||||||
|
failed: bool
|
||||||
|
|
||||||
|
proc accept(server: PAsyncHttpServer): PFutureBase =
|
||||||
|
new(result)
|
||||||
|
result.callback = proc () =
|
||||||
|
discard
|
||||||
|
server.value = "hahaha"
|
||||||
|
|
||||||
|
proc processClient(): PFutureBase =
|
||||||
|
new(result)
|
||||||
|
|
||||||
|
proc serve(server: PAsyncHttpServer): PFutureBase =
|
||||||
|
iterator serveIter(): PFutureBase {.closure.} =
|
||||||
|
echo server.value
|
||||||
|
while true:
|
||||||
|
var acceptAddrFut = server.accept()
|
||||||
|
yield acceptAddrFut
|
||||||
|
var fut = acceptAddrFut.value
|
||||||
|
|
||||||
|
var f = processClient()
|
||||||
|
f.callback =
|
||||||
|
proc () =
|
||||||
|
echo("processClient end")
|
||||||
|
echo(f.failed)
|
||||||
|
yield f
|
||||||
|
var x = serveIter
|
||||||
|
for i in 0 .. 1:
|
||||||
|
result = x()
|
||||||
|
result.callback()
|
||||||
|
|
||||||
|
discard serve(PAsyncHttpServer(value: "asdas"))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue