From 76269074014b672582bc630ff393a95e5e21dcec Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Fri, 17 Jan 2020 11:14:17 +0100 Subject: ARC works for async on Windows (#13179) --- lib/pure/asyncfile.nim | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'lib/pure/asyncfile.nim') diff --git a/lib/pure/asyncfile.nim b/lib/pure/asyncfile.nim index 0bf4e9d27..ad111ec50 100644 --- a/lib/pure/asyncfile.nim +++ b/lib/pure/asyncfile.nim @@ -132,8 +132,7 @@ proc readBuffer*(f: AsyncFile, buf: pointer, size: int): Future[int] = var retFuture = newFuture[int]("asyncfile.readBuffer") when defined(windows) or defined(nimdoc): - var ol = PCustomOverlapped() - GC_ref(ol) + var ol = newCustom() ol.data = CompletionData(fd: f.fd, cb: proc (fd: AsyncFD, bytesCount: DWORD, errcode: OSErrorCode) = if not retFuture.finished: @@ -212,8 +211,7 @@ proc read*(f: AsyncFile, size: int): Future[string] = when defined(windows) or defined(nimdoc): var buffer = alloc0(size) - var ol = PCustomOverlapped() - GC_ref(ol) + var ol = newCustom() ol.data = CompletionData(fd: f.fd, cb: proc (fd: AsyncFD, bytesCount: DWORD, errcode: OSErrorCode) = if not retFuture.finished: @@ -340,8 +338,7 @@ proc writeBuffer*(f: AsyncFile, buf: pointer, size: int): Future[void] = ## specified file. var retFuture = newFuture[void]("asyncfile.writeBuffer") when defined(windows) or defined(nimdoc): - var ol = PCustomOverlapped() - GC_ref(ol) + var ol = newCustom() ol.data = CompletionData(fd: f.fd, cb: proc (fd: AsyncFD, bytesCount: DWORD, errcode: OSErrorCode) = if not retFuture.finished: @@ -414,8 +411,7 @@ proc write*(f: AsyncFile, data: string): Future[void] = var buffer = alloc0(data.len) copyMem(buffer, addr copy[0], data.len) - var ol = PCustomOverlapped() - GC_ref(ol) + var ol = newCustom() ol.data = CompletionData(fd: f.fd, cb: proc (fd: AsyncFD, bytesCount: DWORD, errcode: OSErrorCode) = if not retFuture.finished: -- cgit 1.4.1-2-gfad0