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:
Ian Jackson authored and Ian Jackson committed 2015-06-26 16:53:50 +01:00
1 parent 29db7f65d6
commit bf0e9ed9c7
2 files changed
+13

No files matched your search

+11
View File
@@ -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;
+2
View File
@@ -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,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.