mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
added test
This commit is contained in:
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"))
|
||||
Reference in New Issue
Block a user