[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 15/15] libxl: New event generation API
On Mon, 5 Dec 2011, Ian Jackson wrote: > +int libxl_evenable_domain_death(libxl_ctx *ctx, uint32_t domid, > + libxl_ev_user user, libxl_evgen_domain_death **evgen_out) { > + GC_INIT(ctx); > + libxl_evgen_domain_death *evg, *evg_search; > + int rc; > + > + CTX_LOCK; > + > + evg = malloc(sizeof(*evg)); if (!evg) { rc = ERROR_NOMEM; goto out; } > + memset(evg, 0, sizeof(*evg)); > + evg->domid = domid; > + evg->user = user; > + > + LIBXL_TAILQ_INSERT_SORTED(&ctx->death_list, entry, evg, evg_search, , is this a mistake? ^ > +void libxl__event_occurred(libxl__gc *gc, libxl_event *event) { > + if (CTX->event_hooks && > + (CTX->event_hooks->event_occurs_mask & (1UL << event->type))) { > + /* libxl__free_all will call the callback, just before exit > + * from libxl. Please extend this comment: "just before leaving libxl to go back to the caller". Also, even though libxl__free_all might be the right place to call the callbacks, the name of the function (libxl__free_all) won't completely reflect its behaviour anymore. Maybe we need to rename libxl__free_all? > +int libxl_event_check(libxl_ctx *ctx, libxl_event **event_r, > + unsigned long typemask, > + libxl_event_predicate *pred, void *pred_user) { > + GC_INIT(ctx); > + CTX_LOCK; > + int rc = event_check_unlocked(gc, event_r, typemask, pred, pred_user); > + CTX_UNLOCK; > + GC_FREE; > + return rc; > +} I think it is confusing to call event_check_*unlocked* from within CTX_LOCK/CTX_UNLOCK. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |