diff --git a/src/racket/src/future.c b/src/racket/src/future.c index 7ad27ab5e3..6482b843ac 100644 --- a/src/racket/src/future.c +++ b/src/racket/src/future.c @@ -2079,10 +2079,12 @@ void scheme_check_future_work() if (ft) { fs->future_waiting_lwc = ft->next_waiting_lwc; ft->next_waiting_lwc = NULL; + if (!ft->want_lw) + ft = NULL; } mzrt_mutex_unlock(fs->future_mutex); - if (ft && ft->want_lw) { + if (ft) { void *storage[3]; if (capture_future_continuation(ft, storage)) {