/*=========================================================================== FUNCTION: linked_list_destroy ===========================================================================*/ linked_list_err_type linked_list_destroy(void** list_data) { if( list_data == NULL ) { LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__); return eLINKED_LIST_INVALID_HANDLE; } list_state* p_list = (list_state*)*list_data; linked_list_flush(p_list); free(*list_data); *list_data = NULL; return eLINKED_LIST_SUCCESS; }
/*=========================================================================== FUNCTION: msg_q_flush ===========================================================================*/ msq_q_err_type msg_q_flush(void* msg_q_data) { msq_q_err_type rv; if ( msg_q_data == NULL ) { LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__); return eMSG_Q_INVALID_HANDLE; } msg_q* p_msg_q = (msg_q*)msg_q_data; LOC_LOGD("%s: Flushing Message Queue\n", __FUNCTION__); pthread_mutex_lock(&p_msg_q->list_mutex); /* Remove all elements from the list */ rv = convert_linked_list_err_type(linked_list_flush(p_msg_q->msg_list)); pthread_mutex_unlock(&p_msg_q->list_mutex); LOC_LOGD("%s: Message Queue flushed\n", __FUNCTION__); return rv; }