From 9e2cd58931d6e70c3c58ad0336c6f7595301be87 Mon Sep 17 00:00:00 2001 From: Alexander Aksenov Date: Tue, 18 Mar 2014 16:00:00 +0400 Subject: [PATCH] [FIX] Working w/o freezer subgroup Change-Id: I31dc64a889453eae654cbe0979c6f5760ffe0f46 Signed-off-by: Alexander Aksenov --- daemon/freezing.c | 18 ++++++++++++++++++ daemon/main.c | 6 ++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/daemon/freezing.c b/daemon/freezing.c index 9dac901..24adfad 100644 --- a/daemon/freezing.c +++ b/daemon/freezing.c @@ -15,6 +15,7 @@ static FILE *f_tasks_fd = NULL, *f_state_fd = NULL, *f_us_man_fd = NULL; static const char *freezer_frozen = "FROZEN"; static const char *freezer_thawed = "THAWED"; +static char freezer_enabled = 0; static int open_freezer_files(void) { @@ -61,6 +62,11 @@ int create_freezer_subgroup(void) } res = open_freezer_files(); + if (res) + return res; + + freezer_enabled = 1; + LOGI("Freezer enabled\n"); return res; } @@ -70,6 +76,9 @@ int destroy_freezer_subgroup(void) struct stat st; int res = 0; + freezer_enabled = 0; + LOGI("Freezer disabled\n"); + res = thaw_subgroup(); if (res) return res; @@ -89,6 +98,9 @@ static int add_tasks_to_freezer(void) ssize_t res; pid_t pid; + if (!freezer_enabled) + return 0; + if (f_tasks_fd == NULL) { LOGE("Tasks freezer subgroup file is closed\n"); return -1; @@ -116,6 +128,9 @@ int freeze_subgroup(void) size_t len = strlen(freezer_frozen) + 1; ssize_t res; + if (!freezer_enabled) + return 0; + if (f_state_fd == NULL) { LOGE("Freezer.state subgroup file is closed\n"); return -1; @@ -142,6 +157,9 @@ int thaw_subgroup(void) size_t len = strlen(freezer_thawed) + 1; ssize_t res; + if (!freezer_enabled) + return 0; + if (f_state_fd == NULL) { LOGE("Freezer.state subgroup file is closed\n"); return -1; diff --git a/daemon/main.c b/daemon/main.c index 2ca9a3a..e5da1e7 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -478,10 +478,8 @@ int main() return 1; err = create_freezer_subgroup(); - if (err) { - LOGE("cannot create freezer subgroup"); - return 1; - } + if (err) + LOGW("cannot create freezer subgroup\n"); //init all file descriptors init_system_file_descriptors(); -- 2.7.4