And again, concerning performance :

It takes only 244ms on my low end laptop :
    
    
    import nimgo
    import std/times
    
    proc coroEntry() =
        suspend()
    
    let t0 = getTime()
    for i in 0..100_000:
        resume(newCoroutine(coroEntry))
    echo "Time=", (getTime() - t0).inMilliseconds()
    
    
    Run

Where with threads, even when tweaking with ulimits, I'm capped at 9000 
threads, and spawning only 9000 took 320ms.

And dealing with asynchronicity, having a thousands of pending/blocking tasks 
seems not to be a rare case.

Reply via email to