Use integrated lib

This commit is contained in:
Justin Ethier 2019-06-28 13:34:02 -04:00
parent 84f46476b4
commit f9f106ee4d

View file

@ -2,16 +2,15 @@
(import (import
(scheme base) (scheme base)
(scheme write) (scheme write)
(shared-queue)
(srfi 18) (srfi 18)
(cyclone concurrent)) (cyclone concurrent))
(define q (make-queue)) (define q (make-shared-queue))
(define (consume) (define (consume)
(%consume) (%consume)
(%consume)) (%consume))
(define (%consume) (define (%consume)
(let ((val (queue-remove! q))) (let ((val (shared-queue-remove! q)))
(if (procedure? val) (if (procedure? val)
(set! val (val))) (set! val (val)))
(write `(removed ,val ,(current-thread))) (write `(removed ,val ,(current-thread)))
@ -25,11 +24,11 @@
(thread-start! t2) (thread-start! t2)
(thread-sleep! 1) (thread-sleep! 1)
(queue-add! q 'a) (shared-queue-add! q 'a)
(queue-add! q (lambda () (+ 1 2 3))) (shared-queue-add! q (lambda () (+ 1 2 3)))
(queue-add! q 'c) (shared-queue-add! q 'c)
(queue-add! q 'd) (shared-queue-add! q 'd)
(queue-add! q 'e) (shared-queue-add! q 'e)
(thread-join! t1) (thread-join! t1)
(thread-join! t2) (thread-join! t2)