sure, I have updated the code with the following example:
    
    
    proc producer(q: ptr SharedQueue[int]) =
        q[].enqueue(10)
        q[].enqueue(20)
        q[].enqueue(30)
        q[].enqueue(20)
      
      
      proc consumer(q: ptr SharedQueue[int]) =
        echo q[].dequeue()
        echo q[].dequeue()
        echo q[].dequeue()
        echo q[].dequeue()
        echo q[].dequeue()
        echo q[].dequeue()
      
      let q = cast[ptr SharedQueue[int]](allocShared0(sizeof(SharedQueue[int])))
      
      var t1,t2: Thread[ptr SharedQueue[int]]
      
      initSharedQueue(q[])
      
      createThread(t1, producer, q)
      createThread(t2, consumer, q)
      
      joinThreads(t1,t2)
    
    
    

Reply via email to