diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index 33b600718d..f8d079f70c 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -1589,7 +1589,7 @@ proc send*(socket: AsyncFD, data: string, # or failed. let sendFut = socket.send(addr copiedData[0], data.len, flags) - sendFut.cb = + sendFut.callback = proc () = GC_unref(copiedData) if sendFut.failed: diff --git a/tests/async/tasyncsend4757.nim b/tests/async/tasyncsend4757.nim new file mode 100644 index 0000000000..1066f38e56 --- /dev/null +++ b/tests/async/tasyncsend4757.nim @@ -0,0 +1,14 @@ +discard """ + file: "tasyncsend4754.nim" + output: "Finished" +""" + +import asyncdispatch + +proc f(): Future[void] {.async.} = + let s = newAsyncNativeSocket() + await s.connect("example.com", 80.Port) + await s.send("123") + echo "Finished" + +waitFor f()