async: removed the 'unown' references, async never worked with --newruntime anyway and --newruntime is dead (#15374)

This commit is contained in:
Andreas Rumpf
2020-09-20 18:01:07 +02:00
committed by GitHub
parent cdac67376c
commit 04cecdf9c2
2 changed files with 9 additions and 9 deletions

View File

@@ -14,21 +14,20 @@ import macros, strutils, asyncfutures
template createCb(retFutureSym, iteratorNameSym,
strName, identName, futureVarCompletions: untyped) =
bind finished
let retFutUnown = unown retFutureSym
var nameIterVar = iteratorNameSym
proc identName {.closure.} =
try:
if not nameIterVar.finished:
var next = unown nameIterVar()
var next = nameIterVar()
# Continue while the yielded future is already finished.
while (not next.isNil) and next.finished:
next = unown nameIterVar()
next = nameIterVar()
if nameIterVar.finished:
break
if next == nil:
if not retFutUnown.finished:
if not retFutureSym.finished:
let msg = "Async procedure ($1) yielded `nil`, are you await'ing a " &
"`nil` Future?"
raise newException(AssertionDefect, msg % strName)
@@ -39,12 +38,12 @@ template createCb(retFutureSym, iteratorNameSym,
{.pop.}
except:
futureVarCompletions
if retFutUnown.finished:
if retFutureSym.finished:
# Take a look at tasyncexceptions for the bug which this fixes.
# That test explains it better than I can here.
raise
else:
retFutUnown.fail(getCurrentException())
retFutureSym.fail(getCurrentException())
identName()
proc createFutureVarCompletions(futureVarIdents: seq[NimNode],

View File

@@ -103,9 +103,10 @@ proc nimTraceRefDyn(q: pointer; env: pointer) {.compilerRtl, inline.} =
j.traceStack.add(head p[], cast[ptr PNimTypeV2](p[])[])
template orcAssert(cond, msg) =
if not cond:
cfprintf(cstderr, "[Bug!] %s\n", msg)
quit 1
when logOrc:
if not cond:
cfprintf(cstderr, "[Bug!] %s\n", msg)
quit 1
var
roots {.threadvar.}: CellSeq