summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/torture/torture.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source4/torture/torture.c b/source4/torture/torture.c
index 21c0647282..eccc6e5d11 100644
--- a/source4/torture/torture.c
+++ b/source4/torture/torture.c
@@ -3834,6 +3834,10 @@ static BOOL torture_rpc_open(int dummy)
return True;
}
+static void sigcont(void)
+{
+}
+
static double create_procs(BOOL (*fn)(int), BOOL *result)
{
int i, status;
@@ -3845,6 +3849,8 @@ static double create_procs(BOOL (*fn)(int), BOOL *result)
synccount = 0;
+ signal(SIGCONT, sigcont);
+
child_status = (volatile pid_t *)shm_setup(sizeof(pid_t)*nprocs);
if (!child_status) {
printf("Failed to setup shared memory\n");
@@ -3886,7 +3892,7 @@ static double create_procs(BOOL (*fn)(int), BOOL *result)
child_status[i] = getpid();
- while (child_status[i] && end_timer() < start_time_limit) msleep(100);
+ pause();
if (child_status[i]) {
printf("Child %d failed to start!\n", i);
@@ -3918,10 +3924,10 @@ static double create_procs(BOOL (*fn)(int), BOOL *result)
/* start the client load */
start_timer();
-
for (i=0;i<nprocs;i++) {
child_status[i] = 0;
}
+ kill(0, SIGCONT);
printf("%d clients started\n", nprocs);