Works for me...
# nim c --threads:on -d:release --verbosity:0
{.experimental.}
import times
import threadpool
proc enumerableRepeat[T](value: T, n: int = -1): iterator(): T {.gcsafe.} =
result = iterator(): T {.closure.} =
var i = 0
while n == -1 or i < n:
yield value
i += 1
proc writeFile[T](filePath: string, iter: iterator():T) =
var file = open(filePath, mode=fmWrite)
for str in iter(): file.writeLine(str)
file.close()
const w = ["aaaaaaaaaa", "bbbbbbbbbb","cccccccccc"]
template parallelFor(
slice: Slice[int],
f:expr
) =
const a = slice.a
const b = slice.b
parallel:
for i in a..b: spawn f(i)
#parallelFor(0..2) do(i: int) {.closure.}: echo w[i]
parallelFor(0..2) do(i: int) {.closure.}: writeFile("dict_" & $i &
".txt",enumerableRepeat(w[i], 3_000_000))