diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2016-07-29 12:46:55 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2016-07-29 13:12:17 +0900 |
commit | eb77501ac10aec61f1a9898cc51fd104aa92bf73 (patch) | |
tree | 5547c554fc6848c09343a5c9388408c980ff2ce9 | |
parent | 1f8dd274ae4deee2835c6ba1356d3a0086fc0879 (diff) | |
download | debug-launchpad-eb77501ac10aec61f1a9898cc51fd104aa92bf73.tar.gz debug-launchpad-eb77501ac10aec61f1a9898cc51fd104aa92bf73.tar.bz2 debug-launchpad-eb77501ac10aec61f1a9898cc51fd104aa92bf73.zip |
Wait socket creation for stdout & stderr redirection
Change-Id: I18ec250046dca0a64446ca5828649f699277d1c0
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r-- | src/debug-launchpad.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/debug-launchpad.c b/src/debug-launchpad.c index 30d5385..f1a872c 100644 --- a/src/debug-launchpad.c +++ b/src/debug-launchpad.c @@ -63,6 +63,8 @@ static int __real_send(int clifd, int ret) static void __send_result_to_caller(int clifd, int ret) { int res; + int count = 0; + char path[PATH_MAX]; _W("Check app launching"); @@ -75,6 +77,20 @@ static void __send_result_to_caller(int clifd, int ret) return; } + snprintf(path, sizeof(path), "/run/aul/apps/%d/%d/.app-sock", + getuid(), ret); + _D("socket path: %s", path); + do { + if (access(path, F_OK) == 0) { + _D("%s exists", path); + break; + } + + _D("-- now wait socket creation --"); + usleep(50 * 1000); + count++; + } while (count < 20); + res = _proc_check_cmdline_bypid(ret); if (res < 0) { _E("The app process might be terminated " @@ -264,15 +280,15 @@ static int __start_process(const char *appid, const char *app_path, PERF("fork done"); _D("lock up test log(no error): fork done"); + if (__stdout_stderr_redirection(__get_caller_pid(kb))) + _E("__stdout_stderr_redirection() failed"); + _signal_unblock_sigchld(); _signal_fini(); _close_all_fds(); _delete_sock_path(getpid(), getuid()); - if (__stdout_stderr_redirection(__get_caller_pid(kb))) - _E("__stdout_stderr_redirection() failed"); - PERF("prepare exec - fisrt done"); _D("lock up test log(no error): prepare exec - first done"); |