diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2020-10-23 13:53:04 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2020-10-23 13:53:04 +0900 |
commit | 23543f25d40099a3d1f3d49604d25172d8adcb3c (patch) | |
tree | 3b282e314031b9576af85b5b9496e52e9cc6d61a | |
parent | 84c3fa91a27effa397590b8c961615a2ba784b69 (diff) | |
parent | 023be6023f044393cd2db4f0578da5a40727553c (diff) | |
download | launchpad-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.c | 26 |
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(); } |