Exemple #1
0
void hash_del(hash_table *table,uint64_t key){
	lnodeptr node = hash_find_node(table,key);
	if(node != NULL){
		linklist_remove(node);
		if(node->data!=NULL)
		{
			free(node->data);
		}
		node->data=NULL;
		lnode_free(node);
	}
	return;
}
Exemple #2
0
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  delay_table_send
 *  Description:  send delayed message according key
 * =====================================================================================
 */
void delay_table_send(uint64_t key,int fd){
	linklist *msg_list=NULL;
	struct receiver_msg_st *msg=NULL;
	lnodeptr first=NULL;

	delay_table_delete_obsolete(key);	
	msg_list =(linklist *)hash_find(table,key);
	if(NULL == msg_list){
		return;	
	}
	while(! linklist_is_empty(msg_list)){
		first = linklist_pop_first(msg_list);
		msg = (first->data);
		(void)msg_receiver_send(fd,msg);
		if(msg != NULL)
		{
			free(msg);
		}
		fCount++;
		lnode_free(first);
	}
}