[FIX] Working w/o freezer subgroup 59/18359/3
authorAlexander Aksenov <a.aksenov@samsung.com>
Tue, 18 Mar 2014 12:00:00 +0000 (16:00 +0400)
committerAlexander Aksenov <a.aksenov@samsung.com>
Tue, 25 Mar 2014 05:23:57 +0000 (09:23 +0400)
Change-Id: I31dc64a889453eae654cbe0979c6f5760ffe0f46
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
daemon/freezing.c
daemon/main.c

index 9dac901..24adfad 100644 (file)
@@ -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;
index 2ca9a3a..e5da1e7 100644 (file)
@@ -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();