# HG changeset patch # User Jonathan Knowles # Date 1269859682 -3600 # Node ID e6d4f3a5b318bf0503270b4b7252344468af4bf3 # Parent af259cf5d310d9f44cc7380de6ed5117ab7c38fa [CA-39589] Refactoring: extracts out the "suspend_domain" function from a deeply nested block. Signed-off-by: Jonathan Knowles Acked-by: Marcus Granado diff -r af259cf5d310 -r e6d4f3a5b318 ocaml/xapi/vmops.ml --- a/ocaml/xapi/vmops.ml Mon Mar 29 11:48:02 2010 +0100 +++ b/ocaml/xapi/vmops.ml Mon Mar 29 11:48:02 2010 +0100 @@ -912,6 +912,13 @@ | Xal.Shutdown x -> failwith (Printf.sprintf "Expected domain shutdown reason: %d" x) in + let suspend_domain ~fd ~hvm () = with_xal (fun xal -> + Domain.suspend ~xc ~xs ~hvm domid fd [] ~progress_callback:progress_cb + (fun () -> + handle_death + (clean_shutdown_with_reason + ~xal ~__context ~self:vm domid Domain.Suspend))) + in Xapi_xenops_errors.handle_xenops_error (fun () -> with_xc_and_xs @@ -940,14 +947,7 @@ finally (fun () -> debug "suspend: phase 3/4: suspending to disk"; - with_xal - (fun xal -> - Domain.suspend ~xc ~xs ~hvm domid fd [] - ~progress_callback:progress_cb - (fun () -> - handle_death (clean_shutdown_with_reason ~xal - ~__context ~self:vm domid - Domain.Suspend))); + suspend_domain ~fd ~hvm (); (* If the suspend succeeds, set the suspend_VDI *) Db.VM.set_suspend_VDI ~__context ~self:vm ~value:vdi_ref;) (fun () -> Unix.close fd);