equal
deleted
inserted
replaced
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; |