guint live_timer;
int state;
bool is_hydra;
+ bool app_check;
io_channel_h client_channel;
io_channel_h channel;
io_channel_h hydra_channel;
int detection_method, int activation_method,
int deactivation_method, unsigned int ttl, int timeout_val,
int threshold_max, int threshold_min, bool on_boot,
- bool app_exists, bool is_hydra);
+ bool app_exists, bool is_hydra, bool app_check);
static int __remove_slot(int type, int loader_id);
static int __add_default_slots(void);
static gboolean __handle_idle_checker(gpointer data);
return G_SOURCE_REMOVE;;
}
- if (!cpc->app_exists) {
+ if (cpc->app_check && !cpc->app_exists) {
_W("The application is not installed. Type(%d)", cpc->type);
return G_SOURCE_CONTINUE;
}
}
cpc = (candidate_process_context_t *)data;
- if (!cpc->app_exists) {
+ if (cpc->app_check && !cpc->app_exists) {
_W("The application is not installed. Type(%d)", cpc->type);
__sequencer.idle_checker = 0;
__sequencer.running_cpc = NULL;
continue;
}
- if (!cpc->app_exists) {
+ if (cpc->app_check && !cpc->app_exists) {
iter = g_list_next(iter);
continue;
}
DEFAULT_CPU_THRESHOLD_MAX,
DEFAULT_CPU_THRESHOLD_MIN,
false,
- true, 0);
+ true,
+ false,
+ true);
__set_timer(cpc);
free(loader_name);
return lid;
DEFAULT_CPU_THRESHOLD_MAX,
DEFAULT_CPU_THRESHOLD_MIN,
false,
- true, 0);
+ true,
+ false,
+ true);
if (cpc == NULL) {
_E("cpc is NULL");
bundle_free_encoded_rawdata(&extra);
return;
cpc->app_exists = app_exists;
- if (!cpc->app_exists) {
+ if (cpc->app_check && !cpc->app_exists) {
if (cpc->pid > 0)
__dispose_candidate_process(cpc);
__sequencer_remove_slot(cpc);
if (!cpc->touched && !cpc->on_boot)
return;
- if (!cpc->app_exists || cpc->pid > CANDIDATE_NONE)
+ if ((cpc->app_check && !cpc->app_exists) || cpc->pid > CANDIDATE_NONE)
return;
if (cpc->detection_method & METHOD_TIMEOUT)
_W("Launch directly %d %p", loader_id, cpc);
pid = __launch_directly(menu_info->appid, app_path, clifd, kb,
menu_info, NULL);
- if (org_cpc && org_cpc->app_exists &&
+ if (org_cpc && (!org_cpc->app_check || org_cpc->app_exists) &&
org_cpc->pid == CANDIDATE_NONE &&
!__sequencer_slot_exist(org_cpc)) {
if (org_cpc->timer > 0) {
int activation_method, int deactivation_method,
unsigned int ttl, int timeout_val,
int threshold_max, int threshold_min,
- bool on_boot, bool app_exists, bool is_hydra)
+ bool on_boot, bool app_exists, bool is_hydra, bool app_check)
{
candidate_process_context_t *cpc;
cpc->ttl = ttl;
cpc->live_timer = 0;
cpc->is_hydra = is_hydra;
+ cpc->app_check = app_check;
cpc->score = WIN_SCORE;
cpc->pss = 0;
int activation_method, int deactivation_method,
unsigned int ttl, int timeout_val,
int threshold_max, int threshold_min,
- bool on_boot, bool app_exists, bool is_hydra)
+ bool on_boot, bool app_exists, bool is_hydra, bool app_check)
{
candidate_process_context_t *cpc;
int fd;
activation_method, deactivation_method,
ttl, timeout_val,
threshold_max, threshold_min,
- on_boot, app_exists, is_hydra);
+ on_boot, app_exists, is_hydra, app_check);
if (cpc == NULL)
return NULL;
info->cpu_threshold_max,
info->cpu_threshold_min,
false,
- info->app_exists, info->is_hydra);
+ info->app_exists,
+ info->is_hydra,
+ info->app_check);
if (cpc == NULL)
return;
info->cpu_threshold_max,
info->cpu_threshold_min,
info->on_boot,
- info->app_exists, info->is_hydra);
+ info->app_exists,
+ info->is_hydra,
+ info->app_check);
if (cpc == NULL)
return;