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 _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
