aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_bootloader.c
diff options
context:
space:
mode:
authorIan Jackson <ian.jackson@eu.citrix.com>2012-05-11 18:59:06 +0100
committerIan Jackson <ian.jackson@eu.citrix.com>2012-05-11 18:59:06 +0100
commitb71db3824995ca27b106a2d9fab1a24f93244a4f (patch)
tree4febbd9b3677745cfb28f740eec744bccd729c19 /tools/libxl/libxl_bootloader.c
parent172af31d56bad27a570c3f4e2bd1e82083afa0b0 (diff)
downloadxen-b71db3824995ca27b106a2d9fab1a24f93244a4f.tar.gz
xen-b71db3824995ca27b106a2d9fab1a24f93244a4f.tar.bz2
xen-b71db3824995ca27b106a2d9fab1a24f93244a4f.zip
libxl: convert console callback to libxl_asyncprogress_how
Remove the old console callback. (Its reentrancy properties were troublesome: in principle, the event loop might be reentered during the callback, and the libxl__domain_create_state swept out from under the feet of the domain creation.) As a side effect of the new code arrangements, the console callback for non-bootloader-using PV guests now occurs near the end of domain creation, in the same place as for HVM guests, rather than near the start. The new arrangements should in principle mean that by the time the console is described as ready by the callback, the xenstore key is indeed ready. So in the future the timeout might be removed from the console client. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_bootloader.c')
-rw-r--r--tools/libxl/libxl_bootloader.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
index 1534baed51..8436c07e24 100644
--- a/tools/libxl/libxl_bootloader.c
+++ b/tools/libxl/libxl_bootloader.c
@@ -377,6 +377,9 @@ static void bootloader_gotptys(libxl__egc *egc, libxl__openpty_state *op)
goto out;
}
+ if (bl->console_available)
+ bl->console_available(egc, bl);
+
int bootloader_master = libxl__carefd_fd(bl->ptys[0].master);
int xenconsole_master = libxl__carefd_fd(bl->ptys[1].master);