|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: event: Introduce CTX_UNLOCK_EGC_FREE
commit 9cb0ac86d429429078e2090f740f232483b60c44
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
AuthorDate: Thu Jan 9 18:54:19 2020 +0000
Commit: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
CommitDate: Mon Jan 27 16:03:17 2020 +0000
libxl: event: Introduce CTX_UNLOCK_EGC_FREE
This is a very common exit pattern. We are going to want to change
this pattern. So we should make it into a macro of its own.
No functional change.
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>
Tested-by: George Dunlap <george.dunlap@xxxxxxxxxx>
---
tools/libxl/libxl_event.c | 18 ++++++------------
tools/libxl/libxl_fork.c | 6 ++----
tools/libxl/libxl_internal.h | 2 ++
3 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/tools/libxl/libxl_event.c b/tools/libxl/libxl_event.c
index 5b12a45e70..be37e12bb0 100644
--- a/tools/libxl/libxl_event.c
+++ b/tools/libxl/libxl_event.c
@@ -1152,8 +1152,7 @@ int libxl_osevent_beforepoll(libxl_ctx *ctx, int *nfds_io,
CTX_LOCK;
int rc = beforepoll_internal(gc, ctx->poller_app,
nfds_io, fds, timeout_upd, now);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
return rc;
}
@@ -1305,8 +1304,7 @@ void libxl_osevent_afterpoll(libxl_ctx *ctx, int nfds,
const struct pollfd *fds,
EGC_INIT(ctx);
CTX_LOCK;
afterpoll_internal(egc, ctx->poller_app, nfds, fds, now);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
}
/*
@@ -1342,8 +1340,7 @@ void libxl_osevent_occurred_fd(libxl_ctx *ctx, void
*for_libxl,
fd_occurs(egc, ev, revents_ign);
out:
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
}
void libxl_osevent_occurred_timeout(libxl_ctx *ctx, void *for_libxl)
@@ -1365,8 +1362,7 @@ void libxl_osevent_occurred_timeout(libxl_ctx *ctx, void
*for_libxl)
time_occurs(egc, ev, ERROR_TIMEDOUT);
out:
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
}
void libxl__event_disaster(libxl__egc *egc, const char *msg, int errnoval,
@@ -1546,8 +1542,7 @@ int libxl_event_check(libxl_ctx *ctx, libxl_event
**event_r,
EGC_INIT(ctx);
CTX_LOCK;
int rc = event_check_internal(egc, event_r, typemask, pred, pred_user);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
return rc;
}
@@ -1772,8 +1767,7 @@ int libxl_event_wait(libxl_ctx *ctx, libxl_event
**event_r,
out:
libxl__poller_put(ctx, poller);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
return rc;
}
diff --git a/tools/libxl/libxl_fork.c b/tools/libxl/libxl_fork.c
index 0f1b6b518c..cf170b9085 100644
--- a/tools/libxl/libxl_fork.c
+++ b/tools/libxl/libxl_fork.c
@@ -483,8 +483,7 @@ int libxl_childproc_reaped(libxl_ctx *ctx, pid_t pid, int
status)
assert(CTX->childproc_hooks->chldowner
== libxl_sigchld_owner_mainloop);
int rc = childproc_reaped(egc, pid, status);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
return rc;
}
@@ -529,8 +528,7 @@ void libxl_childproc_sigchld_occurred(libxl_ctx *ctx)
assert(CTX->childproc_hooks->chldowner
== libxl_sigchld_owner_mainloop);
childproc_checkall(egc);
- CTX_UNLOCK;
- EGC_FREE;
+ CTX_UNLOCK_EGC_FREE;
}
static void sigchld_selfpipe_handler(libxl__egc *egc, libxl__ev_fd *ev,
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 9160e55ef9..19c1dc2141 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -2363,6 +2363,8 @@ _hidden void libxl__egc_cleanup(libxl__egc *egc);
#define EGC_FREE libxl__egc_cleanup(egc)
+#define CTX_UNLOCK_EGC_FREE do{ CTX_UNLOCK; EGC_FREE; }while(0)
+
/*
* Machinery for asynchronous operations ("ao")
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |