Whenever the code gets to accept, three forked processes die with Error: 
unhandled exception: Bad file descriptor (code: 9) [IOSelectorsException] and 
only the original survives.
    
    
    var server = newAsyncSocket()
    server.setSockOpt(OptReuseAddr, true)
    server.bindAddr(Port(5000))
    server.listen()
    
    # Four processes
    discard posix.fork()
    discard posix.fork()
    
    proc serve {.async.} =
      while true:
        let client = await server.accept()
        client.setSockOpt(OptNoDelay, true)
        asyncCheck processClient(client)
    
    asyncCheck serve()
    runForever()
    
    
    Run

I tried with net sockets instead of async and then it works as expected but I 
cannot figure out how to turn plain socket into async socket.

So, how is one supposed to implement pre-fork listening on Nim? 

Reply via email to