From 3fb226ce2a6e98e62100f13cb5c1a9425a1e7c9a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 24 Jun 2019 20:14:15 -0600 Subject: [PATCH] cs: fix future-thread signaling Fix confusion between signal and broadcast operation. --- racket/src/thread/future.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/racket/src/thread/future.rkt b/racket/src/thread/future.rkt index bf9a31845c..12479bd430 100644 --- a/racket/src/thread/future.rkt +++ b/racket/src/thread/future.rkt @@ -407,7 +407,7 @@ (host:mutex-acquire (scheduler-mutex s)) (for ([w (in-list (scheduler-workers s))]) (set-worker-die?! w #t)) - (host:condition-signal (scheduler-cond s)) + (host:condition-broadcast (scheduler-cond s)) (host:mutex-release (scheduler-mutex s)) (futures-sync-for-shutdown) (current-scheduler #f))) @@ -423,8 +423,7 @@ (cond [(not old) (set-scheduler-futures-head! s f) - (set-scheduler-futures-tail! s f) - (host:condition-signal (scheduler-cond s))] + (set-scheduler-futures-tail! s f)] [front? (set-future*-next! f old) (set-future*-prev! old f) @@ -433,6 +432,7 @@ (set-future*-prev! f old) (set-future*-next! old f) (set-scheduler-futures-tail! s f)]) + (host:condition-signal (scheduler-cond s)) (host:mutex-release (scheduler-mutex s))) ;; called with queue lock held