src/Pure/Concurrent/lazy.ML
changeset 62923 3a122e1e352a
parent 62891 7a11ea5c9626
child 66166 c88d1c36c9c3
equal deleted inserted replaced
62922:96691631c1eb 62923:3a122e1e352a
    59 
    59 
    60 fun force_result (Lazy var) =
    60 fun force_result (Lazy var) =
    61   (case peek (Lazy var) of
    61   (case peek (Lazy var) of
    62     SOME res => res
    62     SOME res => res
    63   | NONE =>
    63   | NONE =>
    64       Multithreading.uninterruptible (fn restore_attributes => fn () =>
    64       Thread_Attributes.uninterruptible (fn restore_attributes => fn () =>
    65         let
    65         let
    66           val (expr, x) =
    66           val (expr, x) =
    67             Synchronized.change_result var
    67             Synchronized.change_result var
    68               (fn Expr e =>
    68               (fn Expr e =>
    69                     let val x = Future.promise I
    69                     let val x = Future.promise I