mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
libxl: events: libxl__xswait* support @paths
Special-case paths starting with '@' in libxl__xswait. Attempting to read these from xenstore gives EINVAL. Callers waiting for (say) @releaseDomain will be checking for some condition which can be observed other than by looking at xenstore. Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> --- v3: New patch in this version of the series.
This commit is contained in:
1 parent
eeb157e96d
commit
ffb46d64c3
2 files changed
+8
-2
No files matched your search
@@ -69,8 +69,12 @@ void xswait_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *xsw,
|
||||
int rc;
|
||||
const char *data;
|
||||
|
||||
rc = libxl__xs_read_checked(gc, XBT_NULL, xswa->path, &data);
|
||||
if (rc) { xswait_report_error(egc, xswa, rc); return; }
|
||||
if (xswa->path[0] == '@') {
|
||||
data = 0;
|
||||
} else {
|
||||
rc = libxl__xs_read_checked(gc, XBT_NULL, xswa->path, &data);
|
||||
if (rc) { xswait_report_error(egc, xswa, rc); return; }
|
||||
}
|
||||
|
||||
xswa->callback(egc, xswa, 0, data);
|
||||
}
|
||||
|
||||
@@ -1130,6 +1130,8 @@ typedef struct libxl__xswait_state libxl__xswait_state;
|
||||
* This HAS been logged.
|
||||
* xswait will not continue (but calling libxl__xswait_stop is OK).
|
||||
*
|
||||
* xswait.path may start with with '@', in which case no read is done
|
||||
* and the callback will always get data==0.
|
||||
*/
|
||||
typedef void libxl__xswait_callback(libxl__egc *egc,
|
||||
libxl__xswait_state *xswa, int rc, const char *data);
|
||||
|
||||