shithub: purgatorio

ref: f8935b5778397074d41a48205e5c7f87d7b531fe
dir: purgatorio/module/watchvars.m

View raw version
Watchvars: module {
	PATH: con "/dis/lib/watchvars.dis";
	Watchvar: adt[T] {
		c: chan of (T, chan of T);

		new:	fn(v: T): Watchvar[T];
		get:	fn(e: self Watchvar[T]): T;
		set:	fn(e: self Watchvar[T], v: T);
		wait:	fn(e: self Watchvar[T]): T;
		waitc:	fn(e: self Watchvar[T]): (T, chan of T);
		waited:	fn(e: self Watchvar[T], ic: chan of T, v: T);
	};
};