From 828dc1f276dba04d626826f71434870933cfb48e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 5 Mar 2019 20:24:02 -0700 Subject: [PATCH] raco setup: allow catching cycle errors In parallel build mode, if attempting to compile a file triggers a cycle error that is caught and discarded, don't leave behind a dependency (that is effectively resolved by the error) in the parallel-worker manager. --- racket/collects/setup/parallel-build.rkt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/racket/collects/setup/parallel-build.rkt b/racket/collects/setup/parallel-build.rkt index 986f27355d..dda801f7d2 100644 --- a/racket/collects/setup/parallel-build.rkt +++ b/racket/collects/setup/parallel-build.rkt @@ -41,13 +41,13 @@ (wrkr/send wrkr (list 'compiled)) 'done] [(list w waitlst) - (hash-set! depends wrkr (cons w fn)) - (let ([fns (check-cycles wrkr (hash) null)]) + (let ([fns (check-cycles w (hasheq wrkr #t) null)]) (cond [fns (wrkr/send wrkr (list 'cycle (cons fn fns))) v] [else + (hash-set! depends wrkr (cons w fn)) (list w (append waitlst (list wrkr)))]))] [else (wrkr/send wrkr (list 'locked))