summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2020-10-23 13:53:04 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2020-10-23 13:53:04 +0900
commit23543f25d40099a3d1f3d49604d25172d8adcb3c (patch)
tree3b282e314031b9576af85b5b9496e52e9cc6d61a
parent84c3fa91a27effa397590b8c961615a2ba784b69 (diff)
parent023be6023f044393cd2db4f0578da5a40727553c (diff)
downloadlaunchpad-sandbox/hjhun/devel.tar.gz
launchpad-sandbox/hjhun/devel.tar.bz2
launchpad-sandbox/hjhun/devel.zip
Merge branch 'tizen' into sandbox/hjhun/develsandbox/hjhun/devel
Change-Id: I9eeca8454b69375279d21e7c794112c40bd829ff Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--src/launchpad-process-pool/src/launchpad.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/launchpad-process-pool/src/launchpad.c b/src/launchpad-process-pool/src/launchpad.c
index be47523..ba901ce 100644
--- a/src/launchpad-process-pool/src/launchpad.c
+++ b/src/launchpad-process-pool/src/launchpad.c
@@ -530,7 +530,7 @@ static candidate_process_context_t *__get_running_slot(bool is_hydra)
return NULL;
}
-static void __pause_last_running_slot(bool is_hydra)
+static void __pause_all_running_slots(bool is_hydra)
{
candidate_process_context_t *cpc = NULL;
GList *iter;
@@ -538,16 +538,14 @@ static void __pause_last_running_slot(bool is_hydra)
iter = g_list_last(candidate_slot_list);
while (iter) {
cpc = (candidate_process_context_t *)iter->data;
- if (cpc->is_hydra == is_hydra && cpc->pid != CANDIDATE_NONE)
- break;
+ if (cpc->is_hydra == is_hydra && cpc->pid != CANDIDATE_NONE) {
+ __update_slot_state(cpc, METHOD_OUT_OF_MEMORY, true);
+ if (!_memory_monitor_is_low_memory())
+ return;
+ }
iter = g_list_previous(iter);
}
-
- if (!cpc)
- return;
-
- __update_slot_state(cpc, METHOD_OUT_OF_MEMORY, true);
}
static void __resume_all_slots(void)
@@ -1372,7 +1370,6 @@ static int __create_sock_activation(void)
snprintf(launchpad_process_pool_sock_path,
sizeof(launchpad_process_pool_sock_path), "%s/daemons/%u/%s",
SOCKET_PATH, getuid(), PROCESS_POOL_LAUNCHPAD_SOCK);
-
for (i = SD_LISTEN_FDS_START; i < SD_LISTEN_FDS_START + fds; ++i) {
if (sd_is_socket_unix(i, SOCK_STREAM, 1,
launchpad_process_pool_sock_path, 0) > 0)
@@ -2749,6 +2746,8 @@ static void __add_slot_from_info(gpointer data, gpointer user_data)
info->app_exists,
info->is_hydra,
info->app_check);
+
+ bundle_free_encoded_rawdata(&extra);
if (cpc == NULL)
return;
@@ -3023,14 +3022,7 @@ static int __memory_monitor_cb(bool low_memory, void *user_data)
candidate_slot_list = g_list_sort(candidate_slot_list,
__compare_slot);
-
- do {
- __pause_last_running_slot(false);
-
- cpc = __get_running_slot(false);
- if (!cpc)
- break;
- } while (__is_low_memory());
+ __pause_all_running_slots(false);
} else {
__resume_all_slots();
}