let wrap_preemptively ~on_exn f =
  wrap_deferred (fun () -> 
      Lwt_preemptive.detach f ())
    ~on_exn