Could you give me some example about how you could translate those examples in CPS. Because the docs seems very confusing : proc printInDesorder(sleepTimeMs: int) = sleepAsync(sleepTimeMs) echo "> I woke up after ", sleepTimeMs, "ms" waitAll @[ goAsync printInDesorder(110), goAsync printInDesorder(220), goAsync printInDesorder(60), ] Run
or this : import nimgo, nimgo/gofile const NumberOfIO = 1000 var p1 = createGoPipe(buffered = false) var p2 = createGoPipe(buffered = false) var consumerSock = (receiver: p1[0], sender: p2[1]) var producerSock = (receiver: p2[0], sender: p1[1]) proc producer() = for i in 0..<NumberOfIO: discard producerSock.sender.write("Hello\n") discard producerSock.receiver.readLine() proc consummer() = while true: var data = consumerSock.receiver.readLine() if data == "": break discard consumerSock.sender.write("Hello\n") withEventLoop(): goAsync consummer() goAsync producer() Run