@@ -676,7 +676,7 @@ static void stop_threads(enum trace_type type)
/* Tell all threads to finish up */
for (i = 0; i < recorder_threads; i++) {
if (pids[i].pid > 0) {
- kill(pids[i].pid, SIGINT);
+ kill(pids[i].pid, SIGUSR1);
}
}
@@ -2656,12 +2656,6 @@ static void finish(int sig)
finished = 1;
}
-static void flush(int sig)
-{
- if (recorder)
- tracecmd_stop_recording(recorder);
-}
-
static int connect_port(const char *host, unsigned int port)
{
struct addrinfo hints;
@@ -3015,7 +3009,6 @@ static int create_recorder(struct buffer_instance *instance, int cpu,
pid_t pid;
if (type != TRACE_TYPE_EXTRACT) {
- signal(SIGUSR1, flush);
pid = fork();
if (pid < 0)
@@ -3024,6 +3017,9 @@ static int create_recorder(struct buffer_instance *instance, int cpu,
if (pid)
return pid;
+ signal(SIGINT, SIG_IGN);
+ signal(SIGUSR1, finish);
+
if (rt_prio)
set_prio(rt_prio);