Remove without-interrupts from runtime/rbtree.scm.
authorMatt Birkholz <puck@birchwood-abbey.net>
Wed, 17 Jun 2015 02:21:19 +0000 (19:21 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Mon, 6 Jul 2015 05:45:44 +0000 (22:45 -0700)
It was only used to postpone aborts that would leave data structures
inconsistent.

src/runtime/rbtree.scm

index c10daa52b67b23eb10fa90e0edb77d9533fa5e56..51a7e6593db07e0ca2720396f282b0a24ebde9ed 100644 (file)
@@ -128,7 +128,7 @@ USA.
     (let loop ((x (tree-root tree)) (y #f) (d #f))
       (cond ((not x)
             (let ((z (make-node key datum)))
-              (without-interrupts
+              (without-interruption
                (lambda ()
                  (set-node-up! z y)
                  (cond ((not y) (set-tree-root! tree z))
@@ -176,12 +176,6 @@ USA.
        ((null? alist))
       (rb-tree/insert! tree (caar alist) (cdar alist)))
     tree))
-
-(define-integrable (without-interrupts thunk)
-  (let ((interrupt-mask (set-interrupt-enables! interrupt-mask/gc-ok)))
-    (thunk)
-    (set-interrupt-enables! interrupt-mask)
-    unspecific))
 \f
 (define (rb-tree/delete! tree key)
   (guarantee-rb-tree tree 'RB-TREE/DELETE!)
@@ -194,7 +188,7 @@ USA.
            (else (loop (node-right x)))))))
 
 (define (delete-node! tree z)
-  (without-interrupts
+  (without-interruption
    (lambda ()
      (let ((z
            (if (and (node-left z) (node-right z))