summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2016-07-29 12:46:55 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2016-07-29 13:12:17 +0900
commiteb77501ac10aec61f1a9898cc51fd104aa92bf73 (patch)
tree5547c554fc6848c09343a5c9388408c980ff2ce9
parent1f8dd274ae4deee2835c6ba1356d3a0086fc0879 (diff)
downloaddebug-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.c22
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");