From da02f76a2540cef67e77a4fdad3ae6665b86642d Mon Sep 17 00:00:00 2001 From: Masamichi Takagi Date: Mon, 3 Dec 2018 20:13:02 +0900 Subject: [PATCH] mcexec: Fix error handling of init_worker_threads Refs: #1233 Change-Id: Icce49c996d69b3cf64a71e7bd470421f329c881f --- executer/user/mcexec.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/executer/user/mcexec.c b/executer/user/mcexec.c index 389233b8..6b4488d7 100644 --- a/executer/user/mcexec.c +++ b/executer/user/mcexec.c @@ -1487,8 +1487,9 @@ int init_worker_threads(int fd) int ret = create_worker_thread(NULL, &init_ready); if (ret) { - printf("ERROR: creating syscall threads (%d), check ulimit?\n", ret); - return ret; + printf("ERROR: creating worker threads (%d), check ulimit?\n", + ret); + return -ret; } } @@ -2757,8 +2758,9 @@ int main(int argc, char **argv) return 1; } - if (init_worker_threads(fd) < 0) { - perror("worker threads: "); + if ((error = init_worker_threads(fd)) != 0) { + fprintf(stderr, "%s: Error: creating worker threads: %s\n", + __func__, strerror(-error)); close(fd); return 1; } @@ -3569,11 +3571,11 @@ gettid_out: n_threads = 4; } - ret = 0; - if (init_worker_threads(fd) < 0) { - perror("worker threads: "); + if ((ret = init_worker_threads(fd)) != 0) { + fprintf(stderr, "%s: Error: creating worker threads: %s\n", + __func__, strerror(-ret)); close(fd); - ret = -1; + exit(1); } fork_child_sync_pipe: