Lines Matching defs:var
9 type 'a var
10 val var: string -> 'a -> 'a var
11 val value: 'a var -> 'a
12 val timed_access: 'a var -> ('a -> Time.time option) -> ('a -> ('b * 'a) option) -> 'b option
13 val guarded_access: 'a var -> ('a -> ('b * 'a) option) -> 'b
14 val change_result: 'a var -> ('a -> 'b * 'a) -> 'b
15 val change: 'a var -> ('a -> 'a) -> unit
23 abstype 'a var = Var of
27 var: 'a Unsynchronized.ref}
30 fun var name x = Var
34 var = Unsynchronized.ref x};
36 fun value (Var {name, lock, var, ...}) =
37 Multithreading.synchronized name lock (fn () => ! var);
42 fun timed_access (Var {name, lock, cond, var}) time_limit f =
46 let val x = ! var in
55 (var := x'; ConditionVar.broadcast cond; SOME y)) ())
59 fun guarded_access var f = valOf (timed_access var (fn _ => NONE) f);
64 fun change_result var f = guarded_access var (SOME o f);
65 fun change var f = change_result var (fn x => ((), f x));