From 171e4fba41fb30a1aa236ab2a6b970c3c432a5ab Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Thu, 5 Nov 2015 16:30:46 -0500 Subject: [PATCH] Use a semaphore instead of sleeping in this test. --- pkgs/racket-test/tests/pkg/tests-locking.rkt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-test/tests/pkg/tests-locking.rkt b/pkgs/racket-test/tests/pkg/tests-locking.rkt index 0cd93a2d0e..768b0ce615 100644 --- a/pkgs/racket-test/tests/pkg/tests-locking.rkt +++ b/pkgs/racket-test/tests/pkg/tests-locking.rkt @@ -16,6 +16,7 @@ (initialize-catalogs) (define okay-to-start?-sema (make-semaphore)) (define okay-to-respond?-sema (make-semaphore)) + (define okay-to-quit?-sema (make-semaphore)) (thread (λ () (serve/servlet (pkg-index/basic @@ -28,7 +29,8 @@ #:command-line? #t #:servlet-regexp #rx"" #:port 9967) - (sleep 2))) + (semaphore-wait okay-to-quit?-sema) + (semaphore-wait okay-to-quit?-sema))) ;; Step 2: Assign it as our server $ "raco pkg config --set catalogs http://localhost:9967" @@ -37,11 +39,13 @@ (thread (λ () (shelly-begin - $ "raco pkg install pkg-test1"))) + $ "raco pkg install pkg-test1") + (semaphore-post okay-to-quit?-sema))) (semaphore-wait okay-to-start?-sema) ;; Step 4: Start the installation request that will fail $ "raco pkg install pkg-test1" =exit> 1 ;; Step 5: Free the other one - (semaphore-post okay-to-respond?-sema)))) + (semaphore-post okay-to-respond?-sema) + (semaphore-post okay-to-quit?-sema))))