mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-12 23:37:38 +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
|
||||||
queue-add!
|
queue-add!
|
||||||
%queue-add! ;; DEBUG
|
%queue-add! ;; DEBUG
|
||||||
%queue-remove!
|
queue-remove!
|
||||||
|
%queue-remove! ;; DEBUG
|
||||||
queue-clear!
|
queue-clear!
|
||||||
queue-size
|
queue-size
|
||||||
queue-capacity
|
queue-capacity
|
||||||
|
@ -113,10 +114,10 @@
|
||||||
(loop (+ i 1) (inc start (vector-length old-store))))))
|
(loop (+ i 1) (inc start (vector-length old-store))))))
|
||||||
)
|
)
|
||||||
|
|
||||||
(define (queue-remove! q obj)
|
(define (queue-remove! q)
|
||||||
(let ((result #f))
|
(let ((result #f))
|
||||||
(mutex-lock! (q:lock q))
|
(mutex-lock! (q:lock q))
|
||||||
(set! result (%queue-remove! q obj))
|
(set! result (%queue-remove! q))
|
||||||
(mutex-unlock! (q:lock q))
|
(mutex-unlock! (q:lock q))
|
||||||
result))
|
result))
|
||||||
|
|
||||||
|
@ -167,8 +168,4 @@
|
||||||
result)
|
result)
|
||||||
|
|
||||||
;- queue->list
|
;- 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