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 ? 

Reply via email to