object
(** execute 'action' in mutual exclusion between all other threads *)
- method private doCritical: 'a lazy_t -> 'a
+ method private doCritical: 'a. 'a lazy_t -> 'a
(** execute 'action' acting as a 'reader' i.e.: multiple readers can act
at the same time but no writer can act until no readers are acting *)
- method private doReader: 'a lazy_t -> 'a
+ method private doReader: 'a. 'a lazy_t -> 'a
(** execute 'action' acting as a 'writer' i.e.: when a writer is acting,
no readers or writer can act, beware that writers can starve *)
- method private doWriter: 'a lazy_t -> 'a
+ method private doWriter: 'a. 'a lazy_t -> 'a
end