From 43d2868700046b36949a41e487ed8589a8c36da9 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 18 Sep 2005 12:30:58 +0000 Subject: [PATCH] thread-cell tests svn: r870 --- collects/tests/mzscheme/thread.ss | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/collects/tests/mzscheme/thread.ss b/collects/tests/mzscheme/thread.ss index 19a15382e4..2ede9befd1 100644 --- a/collects/tests/mzscheme/thread.ss +++ b/collects/tests/mzscheme/thread.ss @@ -1138,4 +1138,52 @@ ; ---------------------------------------- +(let ([c (make-thread-cell 10)] + [c2 (make-thread-cell -10 #t)] + [c3 (make-thread-cell 3 #t)]) + (test 10 thread-cell-ref c) + (test -10 thread-cell-ref c2) + (let ([orig (current-preserved-thread-cell-values)]) + (test (void) thread-cell-set! c 11) + (test (void) thread-cell-set! c2 -11) + (test 11 thread-cell-ref c) + (test -11 thread-cell-ref c2) + (test 3 thread-cell-ref c3) + (let ([check-sub + (lambda () + (thread-wait (thread (lambda () + (test 10 thread-cell-ref c) + (test -11 thread-cell-ref c2) + (test 3 thread-cell-ref c3) + (test (void) thread-cell-set! c 12) + (test 12 thread-cell-ref c) + (test (void) thread-cell-set! c2 -12) + (test -12 thread-cell-ref c2) + (test (void) thread-cell-set! c3 13) + (test 13 thread-cell-ref c3)))))] + [post (current-preserved-thread-cell-values)]) + (check-sub) + (current-preserved-thread-cell-values orig) + (test 11 thread-cell-ref c) + (test -10 thread-cell-ref c2) + (test 3 thread-cell-ref c3) + (test (void) thread-cell-set! c3 23) + (test 23 thread-cell-ref c3) + (current-preserved-thread-cell-values post) + (test 11 thread-cell-ref c) + (test -11 thread-cell-ref c2) + (test 3 thread-cell-ref c3) + (check-sub) + (thread-wait (thread (lambda () + (current-preserved-thread-cell-values post) + (test 10 thread-cell-ref c) + (test -11 thread-cell-ref c2) + (test 3 thread-cell-ref c3) + (test (void) thread-cell-set! c3 13) + (test 13 thread-cell-ref c3) + (current-preserved-thread-cell-values post) + (test 3 thread-cell-ref c3))))))) + +; -------------------- + (report-errs)