OO!

我加了个 {.gcsafe.} 可以通过了:
    
    
    import asyncnet, asyncdispatch
    
    var sock = newAsyncSocket()
    var f = connect(sock, "irc.freenode.net", Port(6667))
    f.callback =
      proc (future: Future[void]) {.gcsafe.} =
        echo("Connected in future!")
        echo repr sock
        for i in 0 .. 50:
          var recvF = recv(sock, 10)
          recvF.callback =
            proc (future: Future[string]) =
              echo("Read ", future.read.len, ": ", future.read.repr)
    
    runForever()
    

如果不加的话,会出现 Error:
    
    
    Error: type mismatch: got (Future[system.void], proc (future: 
Future[system.void]){.locks: <unknown>.})
    but expected one of:
    proc callback=(future: FutureBase; cb: proc ())
    proc callback=[T](future: Future[T];
                     cb: proc (future: Future[T]))
    

Reply via email to