src/Pure/Concurrent/single_assignment.ML
changeset 62505 9e2a65912111
parent 59054 61b723761dff
child 62891 7a11ea5c9626
equal deleted inserted replaced
62504:f14f17e656a6 62505:9e2a65912111
    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 () =>