ref is also needed for async:
is not working:
import asyncdispatch
type Foo = object
num: int
proc dostuff(foo: var Foo): Future[void] {.async.} =
foo.num = 0
return
var foo = Foo()
waitFor foo.dostuff()
#Error: 'foo' is of type <var Foo> which cannot be captured as it would
violate memory safety, declared here:
c:\Users\david\projects\nimPlayground\t1207.nim(7, 14)
Run
while this works:
import asyncdispatch
type Foo = ref object
num: int
proc dostuff(foo: Foo): Future[void] {.async.} =
foo.num = 0
return
var foo = Foo()
waitFor foo.dostuff()
Run