equal
deleted
inserted
replaced
37 fun wait () = |
37 fun wait () = |
38 (case peek v of |
38 (case peek v of |
39 NONE => |
39 NONE => |
40 (case Multithreading.sync_wait NONE NONE cond lock of |
40 (case Multithreading.sync_wait NONE NONE cond lock of |
41 Exn.Res _ => wait () |
41 Exn.Res _ => wait () |
42 | Exn.Exn exn => reraise exn) |
42 | Exn.Exn exn => Exn.reraise exn) |
43 | SOME x => x); |
43 | SOME x => x); |
44 in wait () end); |
44 in wait () end); |
45 |
45 |
46 fun assign (v as Var {name, lock, cond, var}) x = |
46 fun assign (v as Var {name, lock, cond, var}) x = |
47 Multithreading.synchronized name lock (fn () => |
47 Multithreading.synchronized name lock (fn () => |