return FALSE;
}
- *data = g_list_first(worker->list)->data;
+ GList *cursor = g_list_first(worker->list);
+ if (NULL == cursor) {
+ pthread_mutex_unlock(&worker->queue_mutex);
+ *data = NULL;
+ return FALSE;
+ }
+ *data = cursor->data;
worker->list = g_list_delete_link(worker->list, g_list_first(worker->list));
pthread_mutex_unlock(&worker->queue_mutex);
client_info->client_session = cynara_session_from_pid(pid);
if (NULL == client_info->client_session) {
- ERR("cynara_session_from_pid() return NULL");
- client_destroy_info(client_info);
- return -1;
+ WARN("cynara_session_from_pid() return NULL");
+ client_info->client_session = strdup("");
}
*p_client_info = client_info;
pims_ipc_client_info_s* client_get_info(int client_pid)
{
pims_ipc_client_info_s *client_info = NULL;
+ pims_ipc_client_info_s *client_info_clone = NULL;
pthread_mutex_lock(&_worker_client_mutex);
client_info = g_hash_table_lookup(worker_client_info_map, GINT_TO_POINTER(client_pid));
+ client_info_clone = client_clone_info(client_info);
pthread_mutex_unlock(&_worker_client_mutex);
DBG("Get client_info(%p) from pid(%d)", client_info, client_pid);
- return client_info;
+ return client_info_clone;
}