V
Size: a a a
V
V
YG
YG
var jobs = newSeq[Job]()
proc doTheJobs() {.async.} =
while jobs.len != 0:
await jobs.pop().doSingleJob()
proc doAllJobsByNExecutors(n: int) {.async.} =
var allfuts = newSeq[Future[void]]()
for i in 0 ..< n: allfuts.add(doTheJobs())
await all(allfuts)
# ... add jobs
waitFor doAllJobsByNExecutors(2)
V
V
V
YG
YG
YG
M
import threadpool
proc a() = echo "a"
proc b() = echo "b"
proc c() = echo "c"
proc d() = echo "d"
proc e() = echo "e"
proc f() = echo "f"
setMaxPoolSize(2)
spawn a()
spawn b()
spawn c()
spawn d()
spawn e()
spawn f()
sync()
echo "done"
M
YG
V
V
M
V
T
type
virDomain {.pure, final, importc: "virDomain", header: "libvirt/libvirt.h".} = object
virDomainPtr* = ptr virDomain
proc virConnectListAllDomains*(conn: virConnectPtr, domains: ptr ptr virDomainPtr, flags: cuint): cint {.libvirt.}
when isMainModule:
var domainsPtr: ptr virDomainPtr
var dn = conn.virConnectListAllDomains(addr(domainsPtr), flags)
YG