|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: fork: Break out sigchld_installhandler_core
commit e6a203b4c1475aff200ae7d085ce0fff561daf91
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
AuthorDate: Fri Jan 17 12:01:24 2014 +0000
Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CommitDate: Thu Feb 6 14:20:19 2014 +0000
libxl: fork: Break out sigchld_installhandler_core
Pure code motion. This is going to make the final substantive patch
easier to read.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Cc: Jim Fehlig <jfehlig@xxxxxxxx>
Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Acked-by: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
---
tools/libxl/libxl_fork.c | 38 ++++++++++++++++++++++----------------
1 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/tools/libxl/libxl_fork.c b/tools/libxl/libxl_fork.c
index a15af8e..ce8e8eb 100644
--- a/tools/libxl/libxl_fork.c
+++ b/tools/libxl/libxl_fork.c
@@ -194,6 +194,27 @@ static void sigchld_removehandler_core(void)
sigchld_owner = 0;
}
+static void sigchld_installhandler_core(libxl__gc *gc)
+{
+ struct sigaction ours;
+ int r;
+
+ assert(!sigchld_owner);
+ sigchld_owner = CTX;
+
+ memset(&ours,0,sizeof(ours));
+ ours.sa_handler = sigchld_handler;
+ sigemptyset(&ours.sa_mask);
+ ours.sa_flags = SA_NOCLDSTOP | SA_RESTART;
+ r = sigaction(SIGCHLD, &ours, &sigchld_saved_action);
+ assert(!r);
+
+ assert(((void)"application must negotiate with libxl about SIGCHLD",
+ !(sigchld_saved_action.sa_flags & SA_SIGINFO) &&
+ (sigchld_saved_action.sa_handler == SIG_DFL ||
+ sigchld_saved_action.sa_handler == SIG_IGN)));
+}
+
void libxl__sigchld_notneeded(libxl__gc *gc) /* non-reentrant, idempotent */
{
int rc;
@@ -236,22 +257,7 @@ int libxl__sigchld_needed(libxl__gc *gc) /* non-reentrant,
idempotent */
atfork_lock();
if (sigchld_owner != CTX) {
- struct sigaction ours;
-
- assert(!sigchld_owner);
- sigchld_owner = CTX;
-
- memset(&ours,0,sizeof(ours));
- ours.sa_handler = sigchld_handler;
- sigemptyset(&ours.sa_mask);
- ours.sa_flags = SA_NOCLDSTOP | SA_RESTART;
- r = sigaction(SIGCHLD, &ours, &sigchld_saved_action);
- assert(!r);
-
- assert(((void)"application must negotiate with libxl about SIGCHLD",
- !(sigchld_saved_action.sa_flags & SA_SIGINFO) &&
- (sigchld_saved_action.sa_handler == SIG_DFL ||
- sigchld_saved_action.sa_handler == SIG_IGN)));
+ sigchld_installhandler_core(gc);
}
atfork_unlock();
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |