Moreover, using `Lockers` without `spawn` does not work: import malebolgia / lockers type Example = object s: string c: int proc threadFunc(lockedObj: Locker[Example]) {.thread.} = lock lockedObj as obj: obj.s.add($obj.c) inc obj.c proc threadHandler() = var thr: array[0..4, Thread[Locker[Example]]] var myObj = initLocker(Example()) for i in 0..4: createThread(thr[i], threadFunc, myObj) joinThreads(thr) lock myObj as obj: echo obj echo "Work" threadHandler() echo "Done." Run
Why is that ? Also, one thing I noticed is that malebogia uses global variables for the threadpool. What if I want to create a variable number of threads that is not known at runtime ?