ondemand timeout by account/change_language/telephony callback 11/47511/1
authorGukhwan Cho <gh78.cho@samsung.com>
Thu, 13 Aug 2015 05:54:03 +0000 (14:54 +0900)
committerGukhwan Cho <gh78.cho@samsung.com>
Fri, 4 Sep 2015 04:57:24 +0000 (13:57 +0900)
Change-Id: Ic2d3348e060db6f754b8af465423124a7f3dffc7
Signed-off-by: Gukhwan Cho <gh78.cho@samsung.com>
server/ctsvc_ipc_server.c
server/ctsvc_ipc_server2.c
server/ctsvc_server.c
server/ctsvc_server_bg.c
server/ctsvc_server_change_subject.c
server/ctsvc_server_sim.c
server/ctsvc_server_utils.c
server/ctsvc_server_utils.h

index 3cdfcaa..8fdcad8 100644 (file)
@@ -120,7 +120,7 @@ ERROR_RETURN:
 DATA_FREE:
        ctsvc_handle_destroy(contact);
        ctsvc_server_trim_memory();
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
 }
 
 void ctsvc_ipc_server_check_permission(pims_ipc_h ipc, pims_ipc_data_h indata,
@@ -148,7 +148,7 @@ ERROR_RETURN:
        *outdata = pims_ipc_data_create(0);
        if (NULL == *outdata) {
                CTS_ERR("pims_ipc_data_create() Fail");
-               ctsvc_server_timeout();
+               ctsvc_server_start_timeout();
                return;
        }
 
@@ -156,7 +156,7 @@ ERROR_RETURN:
                pims_ipc_data_destroy(*outdata);
                *outdata = NULL;
                CTS_ERR("ctsvc_ipc_marshal_int() Fail");
-               ctsvc_server_timeout();
+               ctsvc_server_start_timeout();
                return;
        }
 
@@ -165,11 +165,11 @@ ERROR_RETURN:
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_bool() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
        }
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
 }
 
 void ctsvc_ipc_server_db_insert_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
@@ -262,7 +262,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_record_destroy(record,true);
        ctsvc_server_trim_memory();
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -337,7 +337,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_record_destroy(record,true);
        CONTACTS_FREE(view_uri);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -420,7 +420,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_record_destroy(record,true);
        ctsvc_server_trim_memory();
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -510,7 +510,7 @@ DATA_FREE:
 
        ctsvc_handle_destroy(contact);
        CONTACTS_FREE(view_uri);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -606,7 +606,7 @@ ERROR_RETURN:
 DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_record_destroy(record, true);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -708,7 +708,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(list,true);
        CONTACTS_FREE(view_uri);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -807,7 +807,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(list,true);
        contacts_query_destroy(query);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -894,7 +894,7 @@ ERROR_RETURN:
 DATA_FREE:
        ctsvc_handle_destroy(contact);
        CONTACTS_FREE(view_uri);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -980,7 +980,7 @@ ERROR_RETURN:
 DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_query_destroy(query);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1102,7 +1102,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(list,true);
        CONTACTS_FREE(ids);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1200,7 +1200,7 @@ ERROR_RETURN:
 DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(list,true);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1306,7 +1306,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        CONTACTS_FREE(uri);
        CONTACTS_FREE(ids);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1427,7 +1427,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(list,true);
        CONTACTS_FREE(ids);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1537,7 +1537,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        contacts_list_destroy(record_list,true);
        CONTACTS_FREE(view_uri);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1594,7 +1594,7 @@ ERROR_RETURN:
 
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1699,7 +1699,7 @@ DATA_FREE:
        contacts_list_destroy(list,true);
        CONTACTS_FREE(view_uri);
        CONTACTS_FREE(keyword);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1811,7 +1811,7 @@ DATA_FREE:
        contacts_list_destroy(list,true);
        free(view_uri);
        free(keyword);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1918,7 +1918,7 @@ DATA_FREE:
        contacts_list_destroy(list,true);
        contacts_query_destroy(query);
        CONTACTS_FREE(keyword);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1966,7 +1966,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
index a424bac..37ad984 100644 (file)
@@ -103,7 +103,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -166,7 +166,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -236,7 +236,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -307,7 +307,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -382,7 +382,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -451,7 +451,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 void ctsvc_ipc_person_unlink_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
@@ -527,7 +527,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 void ctsvc_ipc_person_reset_usage(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
@@ -597,7 +597,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 void ctsvc_ipc_person_set_favorite_order(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
@@ -671,7 +671,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -741,7 +741,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -808,7 +808,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -861,7 +861,7 @@ ERROR_RETURN:
        }
 DATA_FREE:
        ctsvc_handle_destroy(contact);
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -943,7 +943,7 @@ DATA_FREE:
        ctsvc_handle_destroy(contact);
        free(number);
 
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 #endif /* ENABLE_LOG_FEATURE */
@@ -966,21 +966,21 @@ ERROR_RETURN:
                *outdata = pims_ipc_data_create(0);
                if (NULL == *outdata) {
                        CTS_ERR("pims_ipc_data_create() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_int() Fail (return value)");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(order, *outdata)) {
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_int() Fail (id)");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
        }
@@ -988,7 +988,7 @@ ERROR_RETURN:
                CTS_ERR("outdata is NULL");
        }
 
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1010,14 +1010,14 @@ ERROR_RETURN:
                *outdata = pims_ipc_data_create(0);
                if (NULL == *outdata) {
                        CTS_ERR("pims_ipc_data_create() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_int() Fail (return value)");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(order, *outdata)) {
@@ -1031,7 +1031,7 @@ ERROR_RETURN:
                CTS_ERR("outdata is NULL");
        }
 
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1065,14 +1065,14 @@ ERROR_RETURN:
                *outdata = pims_ipc_data_create(0);
                if (NULL == *outdata) {
                        CTS_ERR("pims_ipc_data_create() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_int() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
        }
@@ -1080,7 +1080,7 @@ ERROR_RETURN:
                CTS_ERR("outdata is NULL");
        }
 
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
@@ -1114,14 +1114,14 @@ ERROR_RETURN:
                *outdata = pims_ipc_data_create(0);
                if (NULL == *outdata) {
                        CTS_ERR("pims_ipc_data_create() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
                if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
                        pims_ipc_data_destroy(*outdata);
                        *outdata = NULL;
                        CTS_ERR("ctsvc_ipc_marshal_int() Fail");
-                       ctsvc_server_timeout();
+                       ctsvc_server_start_timeout();
                        return;
                }
        }
@@ -1129,7 +1129,7 @@ ERROR_RETURN:
                CTS_ERR("outdata is NULL");
        }
 
-       ctsvc_server_timeout();
+       ctsvc_server_start_timeout();
        return;
 }
 
index b371951..6dc8d6b 100644 (file)
@@ -47,7 +47,6 @@
 
 #define CTSVC_TIMEOUT_FOR_DEFAULT 0
 
-static int ctsvc_list_count = 0;
 static int ctsvc_timeout_sec = CTSVC_TIMEOUT_FOR_DEFAULT;
 static GMainLoop *main_loop = NULL;
 
index 1b693e9..f84aba1 100644 (file)
@@ -408,10 +408,10 @@ static gpointer __ctsvc_server_bg_delete(gpointer user_data)
                }
                ctsvc_set_client_access_info(NULL, NULL);
 
+               ctsvc_server_stop_timeout();
                while (1) {
                        if (__ctsvc_cpu_is_busy()) { /* sleep 1 sec in function */
                                CTS_ERR("Now CPU is busy.. waiting");
-                               ctsvc_server_timeout();
                                sleep(CTSVC_SERVER_BG_DELETE_STEP_TIME*59); /* sleep 60 sec(1 min) totally */
                                continue;
                        }
@@ -425,8 +425,10 @@ static gpointer __ctsvc_server_bg_delete(gpointer user_data)
                ctsvc_unset_client_access_info();
 
                ret = ctsvc_disconnect();
+
                if (CONTACTS_ERROR_NONE != ret)
                        CTS_ERR("contacts_disconnect Fail(%d)", ret);
+               ctsvc_server_start_timeout();
 
                g_mutex_lock(&__ctsvc_server_bg_delete_mutex);
                CTS_DBG("wait");
@@ -434,6 +436,7 @@ static gpointer __ctsvc_server_bg_delete(gpointer user_data)
                g_mutex_unlock(&__ctsvc_server_bg_delete_mutex);
        }
 
+       ctsvc_server_start_timeout();
        return NULL;
 }
 
@@ -469,8 +472,12 @@ static bool __ctsvc_server_account_delete_cb(const char* event_type, int account
 {
        CTS_FN_CALL;
        CTS_INFO("event_type : %s, account_id : %d", event_type, account_id);
-       if (STRING_EQUAL == strcmp(event_type, ACCOUNT_NOTI_NAME_DELETE))
+
+       if (STRING_EQUAL == strcmp(event_type, ACCOUNT_NOTI_NAME_DELETE)) {
+               ctsvc_server_stop_timeout();
                ctsvc_addressbook_delete(account_id);
+       }
+       ctsvc_server_start_timeout();
        return true;
 }
 
index a865d7c..750e63e 100644 (file)
@@ -24,6 +24,7 @@
 #include "contacts.h"
 #include "ctsvc_internal.h"
 #include "ctsvc_ipc_define.h"
+#include "ctsvc_ipc_marshal.h"
 #include "ctsvc_server_change_subject.h"
 
 #define CTSVC_SUBSCRIBE_MAX_LEN        1024
index 6015dd6..050a39f 100644 (file)
@@ -955,7 +955,9 @@ static void __ctsvc_server_sim_ready_cb(keynode_t *key, void *data)
        __ctsvc_sim_cb = false;
        vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SIM_STATUS, __ctsvc_server_sim_ready_cb);
 
+       ctsvc_server_stop_timeout();
        __ctsvc_server_sim_info_init();
+       ctsvc_server_start_timeout();
 }
 
 static void __ctsvc_server_telephony_ready_cb(keynode_t *key, void *data)
@@ -981,7 +983,9 @@ static void __ctsvc_server_telephony_ready_cb(keynode_t *key, void *data)
                return;
        }
 
+       ctsvc_server_stop_timeout();
        __ctsvc_server_sim_info_init();
+       ctsvc_server_start_timeout();
 }
 
 
index 4b6e4c0..078fb06 100644 (file)
@@ -76,6 +76,9 @@ static void __ctsvc_server_change_language_cb(keynode_t *key, void *data)
        }
        langset = ctsvc_get_langset();
        INFO("%s --> %s", langset, new_langset);
+
+       ctsvc_server_stop_timeout();
+
        if (STRING_EQUAL != strcmp(langset, new_langset)) {
                bool sort_name_update = false;
                old_primary_sort = ctsvc_get_primary_sort();
@@ -116,6 +119,8 @@ static void __ctsvc_server_change_language_cb(keynode_t *key, void *data)
                        ctsvc_server_update_collation();
                }
        }
+
+       ctsvc_server_start_timeout();
 }
 
 void ctsvc_server_final_configuration(void)
@@ -172,16 +177,28 @@ static gboolean _timeout_cb(gpointer user_data)
        return TRUE;
 }
 
-void ctsvc_server_timeout(void)
+void ctsvc_server_start_timeout(void)
 {
-       CTS_FN_CALL;
        int timeout = ctsvc_server_get_timeout_sec();
        if (timeout < 1)
                return;
 
        ctsvc_mutex_lock(CTS_MUTEX_TIMEOUT);
-       if (_ctsvc_timeout > 0)
+       if (_ctsvc_timeout)
                g_source_remove(_ctsvc_timeout);
        _ctsvc_timeout = g_timeout_add_seconds(timeout, _timeout_cb, NULL);
        ctsvc_mutex_unlock(CTS_MUTEX_TIMEOUT);
 }
+
+void ctsvc_server_stop_timeout(void)
+{
+       int timeout = ctsvc_server_get_timeout_sec();
+       if (timeout < 1)
+               return;
+
+       ctsvc_mutex_lock(CTS_MUTEX_TIMEOUT);
+       if (_ctsvc_timeout)
+               g_source_remove(_ctsvc_timeout);
+       _ctsvc_timeout = 0;
+       ctsvc_mutex_unlock(CTS_MUTEX_TIMEOUT);
+}
index c971e33..f71cd25 100644 (file)
@@ -28,7 +28,8 @@ void ctsvc_server_final_configuration(void);
 int ctsvc_server_set_default_sort(int lang);
 
 void ctsvc_server_trim_memory(void);
-void ctsvc_server_timeout(void);
+void ctsvc_server_start_timeout(void);
+void ctsvc_server_stop_timeout(void);
 
 #endif /* __CTSVC_SERVER_UTILS_H__ */