On Tue, Aug 28, 2007 at 10:51:17AM +0100, Keir Fraser wrote:
> On 28/8/07 09:59, "Isaku Yamahata" <yamahata@xxxxxxxxxxxxx> wrote:
>
> >> do {
> >> ret = do_domctl(xc_handle, &domctl);
> >> while (ret == EAGAIN);
> >
> > Right. attached the updated one.
>
> Hang on! The loop above doesn't do the same as your original one. And looks
> less correct to me. Which is the correct one?
The patch has the following hank which is correct, I believe.
Or am I missing anything else?
diff -r 58d131f1fb35 -r 8e146ea8c43c tools/libxc/xc_domain.c
--- a/tools/libxc/xc_domain.c Fri Aug 24 16:32:56 2007 +0100
+++ b/tools/libxc/xc_domain.c Tue Aug 28 17:58:20 2007 +0900
@@ -55,10 +55,14 @@ int xc_domain_destroy(int xc_handle,
int xc_domain_destroy(int xc_handle,
uint32_t domid)
{
+ int ret;
DECLARE_DOMCTL;
domctl.cmd = XEN_DOMCTL_destroydomain;
domctl.domain = (domid_t)domid;
- return do_domctl(xc_handle, &domctl);
+ do {
+ ret = do_domctl(xc_handle, &domctl);
+ } while ( ret && errno == EAGAIN );
+ return ret;
}
int xc_domain_shutdown(int xc_handle,
--
yamahata
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|