let non_fatal ctxt f =
try
section_ctxt ctxt f
with e ->
let result_full =
report_result_full ctxt (result_full_of_exception ctxt e)
in
OUnitShared.Mutex.with_lock
ctxt.shared ctxt.non_fatal_mutex
(fun () ->
ctxt.non_fatal := result_full :: !(ctxt.non_fatal))