val protect : Mutex.t -> (unit -> 'a) -> 'a