From b7f1ad105bba241849444afe136db39c05a6e223 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Mon, 23 May 2011 15:36:07 +0000 Subject: [PATCH] Call the procedure in HASH-TABLE/MODIFY! before blocking interrupts. Previously the interrupt mask during the call to the procedure depended on whether there was already an entry in the table, which is silly. --- src/runtime/hashtb.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/runtime/hashtb.scm b/src/runtime/hashtb.scm index feda12e74..acb098d4f 100644 --- a/src/runtime/hashtb.scm +++ b/src/runtime/hashtb.scm @@ -653,12 +653,12 @@ USA. (lambda (key* datum barrier) (declare (integrate key* datum barrier)) (if (key=? key* key) - (with-table-locked! table - (lambda () - (let ((datum* (procedure datum))) - (set-entry-datum! entry-type (car p) datum*) - (barrier) - datum*))) + (let ((datum* (procedure datum))) + (with-table-locked! table + (lambda () + (set-entry-datum! entry-type (car p) datum*))) + (barrier) + datum*) (loop (cdr p) p))) (lambda () (loop (cdr p) p))) (let ((datum (procedure default))) -- 2.25.1