diff --git a/collects/drracket/private/syncheck/xref.rkt b/collects/drracket/private/syncheck/xref.rkt index 8451d3161e..43dc9f06a3 100644 --- a/collects/drracket/private/syncheck/xref.rkt +++ b/collects/drracket/private/syncheck/xref.rkt @@ -22,7 +22,7 @@ (thread (λ () (let loop () - (define-values (binding-info resp-chan nack-evt) (apply values (channel-get req-chan))) + (define-values (binding-info resp-chan nack-evt requesting-thread) (apply values (channel-get req-chan))) (define xref (force delayed-xref)) (define resp (and xref @@ -36,7 +36,8 @@ path tag))))))))) (sync (channel-put-evt resp-chan resp) - nack-evt) + nack-evt + (thread-dead-evt requesting-thread)) (loop))))) ;; this function is called from a thread that might be killed @@ -47,5 +48,5 @@ (nack-guard-evt (λ (nack-evt) (define resp-chan (make-channel)) - (channel-put req-chan (list binding-info resp-chan nack-evt)) + (channel-put req-chan (list binding-info resp-chan nack-evt (current-thread))) resp-chan))))