src/Pure/Concurrent/single_assignment.ML
changeset 78720 909dc00766a0
parent 78650 47d0c333d155
equal deleted inserted replaced
78719:89038d9ef77d 78720:909dc00766a0
    59   | Unset {lock, cond} =>
    59   | Unset {lock, cond} =>
    60       Multithreading.synchronized name lock (fn () =>
    60       Multithreading.synchronized name lock (fn () =>
    61         (case ! state of
    61         (case ! state of
    62           Set _ => assign_fail name
    62           Set _ => assign_fail name
    63         | Unset _ =>
    63         | Unset _ =>
    64             Thread_Attributes.uninterruptible (fn _ => fn () =>
    64             Thread_Attributes.uninterruptible_body (fn _ =>
    65              (state := Set x; RunCall.clearMutableBit state;
    65              (state := Set x; RunCall.clearMutableBit state;
    66                Thread.ConditionVar.broadcast cond)) ())));
    66                Thread.ConditionVar.broadcast cond)))));
    67 
    67 
    68 end;
    68 end;
    69 
    69 
    70 end;
    70 end;