This reverts commit c7cc934632.
This commit is contained in:
parent
c7cc934632
commit
f7b76c9ea7
1 changed files with 0 additions and 27 deletions
|
|
@ -1,27 +0,0 @@
|
||||||
import threadpool
|
|
||||||
|
|
||||||
var ch: Channel[int]
|
|
||||||
ch.open
|
|
||||||
var pch = ch.addr
|
|
||||||
|
|
||||||
proc run(f: proc(): int {.gcsafe.}): proc() =
|
|
||||||
let r = spawn f()
|
|
||||||
return proc() = await(r)
|
|
||||||
|
|
||||||
var working = false
|
|
||||||
|
|
||||||
proc handler(): int =
|
|
||||||
while true:
|
|
||||||
let (h, v) = pch[].tryRecv()
|
|
||||||
if not h:
|
|
||||||
discard cas(working.addr, true, false)
|
|
||||||
break
|
|
||||||
1
|
|
||||||
|
|
||||||
proc send(x: int) =
|
|
||||||
ch.send(x)
|
|
||||||
if cas(working.addr, false, true):
|
|
||||||
discard run(handler)
|
|
||||||
|
|
||||||
for x in 0..1000000:
|
|
||||||
send(x)
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue