From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50607) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSy2a-0001NY-AT for qemu-devel@nongnu.org; Fri, 11 May 2012 18:10:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSy2Y-0007IP-D5 for qemu-devel@nongnu.org; Fri, 11 May 2012 18:10:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40235) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSy2Y-0007I6-5X for qemu-devel@nongnu.org; Fri, 11 May 2012 18:10:22 -0400 Message-ID: <4FAD8E49.4090900@redhat.com> Date: Fri, 11 May 2012 16:10:17 -0600 From: Eric Blake MIME-Version: 1.0 References: <1336763987-10920-1-git-send-email-lcapitulino@redhat.com> <1336763987-10920-2-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1336763987-10920-2-git-send-email-lcapitulino@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig21238880B2B5651AB598222A" Subject: Re: [Qemu-devel] [PATCH 1/2] qemu-ga: guest-suspend: make the API synchronous List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: mdroth@linux.vnet.ibm.com, qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig21238880B2B5651AB598222A Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 05/11/2012 01:19 PM, Luiz Capitulino wrote: > Currently, qemu-ga has a SIGCHLD handler that automatically reaps termi= nated > children processes. The idea is to avoid having qemu-ga commands blocke= d > waiting for children to terminate. >=20 > + > + rpid =3D waitpid(pid, &status, 0); You need to worry about signals interrupting the wait. Something like: while ((rpid =3D waitpid(pid, &status, 0) =3D=3D -1 && errno =3D=3D EINTR= ) { } > @@ -664,9 +633,16 @@ static void guest_suspend(const char *pmutils_bin,= const char *sysfile_str, > g_free(pmutils_path); > =20 > if (pid < 0) { > - error_set(err, QERR_UNDEFINED_ERROR); > + goto exit_err; > + } > + > + rpid =3D waitpid(pid, &status, 0); > + if (rpid =3D=3D pid && WIFEXITED(status) && !WEXITSTATUS(status)) = { > return; And again. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig21238880B2B5651AB598222A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJPrY5KAAoJEKeha0olJ0NqhNgH/2LTZOkiqg7xK7W+GdeFf5Cm agAkSgnPk51oF0kBtT25A3pp36EiNyreoXzdaFPjBcwoNCtwCPSmACpBEl7mg7T6 4xiU3AZrsnxctwihLwqviPWt+RewdzBOV3ezKS1H/4G9rQcO2pgRI8SOqY8QgD/h oJJJ31zj9MvSRp31zMRT1e67jQW0RCCOhyRKTh+YjaSQxMopzOk1dgDo/MCfBC7x DyKOrQ3L9vWU3MSHv0bqN1KHMay1AMjqq/tOTrV3HmGWLUxVLIm8qWJQM2c85R23 UZ3UHQR2TVddMl5flHsHwArUrfrhUBBIkJZe3mUPhJUbJVHobZ+jSYfzvAfSdHE= =D5k+ -----END PGP SIGNATURE----- --------------enig21238880B2B5651AB598222A--