From: Taylor R Campbell Date: Mon, 23 May 2011 15:36:07 +0000 (+0000) Subject: Call the procedure in HASH-TABLE/MODIFY! before blocking interrupts. X-Git-Tag: 20110609-Gtk~1^2~5 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b7f1ad105bba241849444afe136db39c05a6e223;p=mit-scheme.git 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. --- 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)))