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