[Libguestfs] [PATCH virt-v2v 1/2] output: Permit output modes to wait on the local NBD server

Richard W.M. Jones rjones at redhat.com
Fri Jul 15 10:57:09 UTC 2022


On Fri, Jul 15, 2022 at 11:41:34AM +0100, Richard W.M. Jones wrote:
>  val output_to_local_file : ?changeuid:((unit -> unit) -> unit) ->
> -                           ?compressed:bool ->
> +                           ?compressed:bool -> ?on_exit_kill:bool ->
>                             Types.output_allocation ->
>                             string -> string -> int64 -> string ->
> -                           unit
> +                           int
>  (** When an output mode wants to create a local file with a
>      particular format (only "raw" or "qcow2" allowed) then
> -    this common function can be used. *)
> +    this common function can be used.
> +
> +    Exit handling:
> +
> +    [?on_exit_kill] defaults to true.  Most callers can leave that alone,
> +    and also ignore the returned PID.  The NBD server will be cleaned up
> +    automatically with no further action required.
> +
> +    However if you need to wait for the NBD server to be cleaned up,
> +    you should set [~on_exit_kill:false] and then waitpid on the
> +    returned PID. *)

To avoid so much churn, another way to do this would be to have some
kind of bi-state or tri-state flag, eg:

  type on_exit_kill = Kill | KillAndWait [ | Nothing ]

and then hide the behaviour inside output_to_local_file.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW


More information about the Libguestfs mailing list