On 26/04/10 13:38, Richard W.M. Jones wrote:
 On Mon, Apr 26, 2010 at 12:04:23PM +0100, Matthew Booth wrote:
>      # Make certain the child process dies with the object
>      if (defined($self->{pid})) {
>          kill(9, $self->{pid});
>          waitpid($self->{pid}, WNOHANG);
> +        $retval ||= $?;
 
 So the non-obvious reason why this works is because waitpid returns
 the child status in $?. 
Yeah. That could probably do with a comment.
> +        my $retval = $?
> +
>          # Note that this undef is what actually causes the underlying handle to
>          # be closed. This is required to allow the RHEV target's temporary
mount
>          # directory to be unmounted and deleted prior to exit.
>          $g = undef;
> +
> +        $? ||= $retval;
 
 I'm a bit confused by this though.  AFAICT the Guestfs::DESTROY
 function shouldn't change $?. 
Actually I had no specific evidence that it did, I was just trying to
cover bases. Do you think this is unnecessary?
Matt
-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team
M:       +44 (0)7977 267231
GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490