From 0a9d8bfd843008fdfef14945f2ccc0052b6d27ba Mon Sep 17 00:00:00 2001 From: Victor Krapivensky Date: Mon, 5 Jun 2017 14:46:34 +0300 Subject: [PATCH] strace.c: move termination code to a separate function This will be needed for the pull-style API. * strace.c (terminate): New function. (main): Use it. --- strace.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/strace.c b/strace.c index 6d5c29aa..08efbdd2 100644 --- a/strace.c +++ b/strace.c @@ -2573,18 +2573,9 @@ dispatch_event(enum trace_event ret, int *pstatus, siginfo_t *si) extern void __gcov_flush(); #endif -int -main(int argc, char *argv[]) +static void ATTRIBUTE_NORETURN +terminate(void) { - init(argc, argv); - - exit_code = !nprocs; - - int status; - siginfo_t si; - while (dispatch_event(next_event(&status, &si), &status, &si)) - ; - cleanup(); fflush(NULL); if (shared_log != stderr) @@ -2619,6 +2610,19 @@ main(int argc, char *argv[]) Exit with 128 + signo then. */ exit_code += 128; } + exit(exit_code); +} + +int +main(int argc, char *argv[]) +{ + init(argc, argv); - return exit_code; + exit_code = !nprocs; + + int status; + siginfo_t si; + while (dispatch_event(next_event(&status, &si), &status, &si)) + ; + terminate(); } -- 2.40.0