1234567891011121314151617181920212223242526272829 |
- discard """
- matrix: "--threads:on"
- """
- {.experimental: "parallel".}
- {.experimental: "notnil".}
- import threadpool
- type
- AO = object
- x: int
- A = ref AO not nil
- proc process(a: A): A =
- return A(x: a.x+1)
- proc processMany(ayys: openArray[A]): seq[A] =
- var newAs: seq[FlowVar[A]]
- parallel:
- for a in ayys:
- newAs.add(spawn process(a))
- for newAflow in newAs:
- let newA = ^newAflow
- if isNil(newA):
- return @[]
- result.add(newA)
|