From 778d4d54729a5b2a9986c06398f80cbc43d3f6b4 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 1 Feb 2007 01:39:22 +0000 Subject: [PATCH] fix another race condition in a test case svn: r5525 --- collects/tests/mzscheme/sync.ss | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/collects/tests/mzscheme/sync.ss b/collects/tests/mzscheme/sync.ss index 827cf8bb17..78ab4a5512 100644 --- a/collects/tests/mzscheme/sync.ss +++ b/collects/tests/mzscheme/sync.ss @@ -280,6 +280,8 @@ (let ([s (make-semaphore 1)] [nack-try-wait? (lambda (n) + (unless (evt? n) + (error "NACK isn't ready for try-wait")) (let ([v (sync/timeout 0 n)]) (when v (test #t void? v) @@ -408,6 +410,7 @@ (lambda (nack) (set! v nack) (choice-evt (make-semaphore) (make-semaphore))))) + (unless (evt? v) (error "the NACK isn't ready!")) (test (void) sync/timeout 0 v)) (let ([ch (make-channel)] @@ -420,7 +423,7 @@ (set! n nack) never-evt)) (channel-put-evt ch 10))))]) - (sleep) + (sync (system-idle-evt)) (test 10 channel-get ch) (test (void) sync/timeout 0 n))) @@ -435,21 +438,21 @@ (let ([s (semaphore-peek-evt (make-semaphore 1))]) (test s sync/timeout 0 (poll-guard-evt (lambda (poll?) - (test #t values poll?) - s))) + (test #t values poll?) + s))) (test s sync (poll-guard-evt (lambda (poll?) - (test #f values poll?) - s))) + (test #f values poll?) + s))) (test s sync/timeout 0 (choice-evt - (poll-guard-evt (lambda (poll?) - (test #t values poll?) - s)) - (make-semaphore))) + (poll-guard-evt (lambda (poll?) + (test #t values poll?) + s)) + (make-semaphore))) (test s sync (choice-evt - (poll-guard-evt (lambda (poll?) - (test #f values poll?) - s)) - (make-semaphore)))) + (poll-guard-evt (lambda (poll?) + (test #f values poll?) + s)) + (make-semaphore)))) ;; ---------------------------------------- ;; Structures as waitables