Hi Ian,
I am currently looking into the asynchronous task cancellation in libxl and have a few very specific queries, if you could answer.
1.
In libxl_domain_resume(),why is libxl_ao_complete called before AO_INPROGRESS?
2.
In libxl_ao_cancel() – the function goes through the ctx->aos_inprogress and tries to find a suitable libxl_ao that matches the input libxl_asyncop_how. It does
so, by a few ‘if’ checks. Regarding this –
a.
Where does the libxl__ao get inserted to the ctx->aos_inprogress? I could not find that somehow – sorry if I overlooked.
b.
Can I suggest adding a unique private ‘id’ field to the libxl_asyncop_how structure, that will be populated by AO_CREATE? This will help finding the matching corresponding
libxl_ao from the ctx->aos_inprogress in libxl_ao_cancel() quicker by looking for search->id == libxl_asyncop_how->id.
3.
In libxl_device_vkb_add(), shouldn’t the function invoke libxl__ao_abort in the error path?
Thanks in advance!
Regards,
Koushik Chakravarty
Mobile - +91-9663396424