mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-12 15:27:36 +02:00
WIP
This commit is contained in:
parent
e39b253300
commit
7f04517ce6
2 changed files with 50 additions and 7 deletions
|
@ -28,7 +28,8 @@
|
|||
queue
|
||||
queue-add!
|
||||
%queue-add! ;; DEBUG
|
||||
%queue-remove!
|
||||
queue-remove!
|
||||
%queue-remove! ;; DEBUG
|
||||
queue-clear!
|
||||
queue-size
|
||||
queue-capacity
|
||||
|
@ -113,10 +114,10 @@
|
|||
(loop (+ i 1) (inc start (vector-length old-store))))))
|
||||
)
|
||||
|
||||
(define (queue-remove! q obj)
|
||||
(define (queue-remove! q)
|
||||
(let ((result #f))
|
||||
(mutex-lock! (q:lock q))
|
||||
(set! result (%queue-remove! q obj))
|
||||
(set! result (%queue-remove! q))
|
||||
(mutex-unlock! (q:lock q))
|
||||
result))
|
||||
|
||||
|
@ -167,8 +168,4 @@
|
|||
result)
|
||||
|
||||
;- queue->list
|
||||
|
||||
;(test-group "basic")
|
||||
;(test #t (shared-queue? (make-queue)))
|
||||
;(test-exit)
|
||||
))
|
||||
|
|
46
libs/cyclone/test-shared-queue.scm
Normal file
46
libs/cyclone/test-shared-queue.scm
Normal file
|
@ -0,0 +1,46 @@
|
|||
(import
|
||||
(scheme base)
|
||||
;(cyclone concurrent)
|
||||
;(srfi 18)
|
||||
(shared-queue)
|
||||
(cyclone test))
|
||||
|
||||
(test-group "basic"
|
||||
(define q (make-queue))
|
||||
(test "predicate" #t (queue? q))
|
||||
(test "empty" #t (queue-empty? q))
|
||||
(test "empty" 0 (queue-size q))
|
||||
(queue-add! q 'a)
|
||||
(test "add a" #f (queue-empty? q))
|
||||
(test "add a" 1 (queue-size q))
|
||||
(queue-add! q 'b)
|
||||
(test "add b" #f (queue-empty? q))
|
||||
(test "add b" 2 (queue-size q))
|
||||
(queue-add! q 'c)
|
||||
(queue-add! q 'd)
|
||||
(queue-add! q 'e)
|
||||
(queue-add! q 'f)
|
||||
(queue-add! q 'g)
|
||||
(queue-add! q 'h)
|
||||
(queue-add! q 'i)
|
||||
(queue-add! q 'j)
|
||||
(test "add many" #f (queue-empty? q))
|
||||
(test "add many" 10 (queue-size q))
|
||||
(test "remove" 'a (queue-remove! q))
|
||||
(test "remove a - size" 9 (queue-size q))
|
||||
(test "remove" 'b (queue-remove! q))
|
||||
(test "remove" 'c (queue-remove! q))
|
||||
(test "remove" 'd (queue-remove! q))
|
||||
(test "remove d - size" 6 (queue-size q))
|
||||
|
||||
(queue-add! q 'a)
|
||||
(queue-add! q 'b)
|
||||
(queue-add! q 'c)
|
||||
(queue-add! q 'd)
|
||||
(test "add many back" 10 (queue-size q))
|
||||
|
||||
(queue-clear! q)
|
||||
(test "clear" 0 (queue-size q))
|
||||
)
|
||||
|
||||
(test-exit)
|
Loading…
Add table
Reference in a new issue