mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
libxl: ao abort: Provide explicit internal abort check API
Some places in libxl which can't handle abort via a libxl__ao_abortable callback might nevertheless benefit from being able to explicitly check whether abort has been requested. Provide the (fairly trivial) internal API function to do this. Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> --- v2: New in this version of the series.
This commit is contained in:
1 parent
29db7f65d6
commit
bf0e9ed9c7
2 files changed
+13
No files matched your search
@@ -2033,6 +2033,17 @@ int libxl_ao_abort(libxl_ctx *ctx, const libxl_asyncop_how *how)
|
||||
return rc;
|
||||
}
|
||||
|
||||
int libxl__ao_aborting(libxl__ao *ao)
|
||||
{
|
||||
libxl__ao *root = ao_nested_root(ao);
|
||||
if (root->aborting) {
|
||||
DBG("ao=%p: aborting at explicit check (root=%p)", ao, root);
|
||||
return ERROR_ABORTED;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int libxl__ao_abortable_register(libxl__ao_abortable *abrt)
|
||||
{
|
||||
libxl__ao *ao = abrt->ao;
|
||||
|
||||
@@ -226,6 +226,8 @@ static inline void libxl__ao_abortable_init
|
||||
static inline bool libxl__ao_abortable_isregistered
|
||||
(const libxl__ao_abortable *c) { return c->registered; }
|
||||
|
||||
int libxl__ao_aborting(libxl__ao *ao); /* -> 0 or ERROR_ABORTED */
|
||||
|
||||
|
||||
typedef struct libxl__ev_time libxl__ev_time;
|
||||
typedef void libxl__ev_time_callback(libxl__egc *egc, libxl__ev_time *ev,
|
||||
|
||||