diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2020-01-17 11:14:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-17 11:14:17 +0100 |
commit | 76269074014b672582bc630ff393a95e5e21dcec (patch) | |
tree | 481e3e494d4b8bef21e503a890ecf8b6fe4638c9 /lib/pure/asyncfile.nim | |
parent | 796aafe7e0856375494a352f738ac14f8de9fd4d (diff) | |
download | Nim-76269074014b672582bc630ff393a95e5e21dcec.tar.gz |
ARC works for async on Windows (#13179)
Diffstat (limited to 'lib/pure/asyncfile.nim')
-rw-r--r-- | lib/pure/asyncfile.nim | 12 |
1 files changed, 4 insertions, 8 deletions
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: |