Record_List * _hashlist_remove_elem(void * hashlist,void * elem) { Record_List * curr_elem; curr_elem=_hashlist_find_elem(hashlist,elem); if(curr_elem==NULL) return NULL; List_del(&curr_elem->list); return curr_elem; }
void Manager_Delete() { Manager_Printall(); char ch; printf("삭제 문자: "); scanf("%c",&ch); fflush(stdin); List_del(&mm.li,ch); Manager_Printall(); }
int connector_hub_del_connector (void * hub,void * connector) { struct tcloud_connector_hub * conn_hub; struct tcloud_connector * new_conn; struct List_head * head, *curr; Record_List * record_elem; Record_List * conn_list; int new_fd; conn_hub = (struct tcloud_connector_hub *)hub; conn_list=(Record_List *)conn_hub->connector_list; head = &(conn_list->list); curr=head->next; while(curr!=head) { record_elem=(Record_List *)curr; if(record_elem->record ==connector) break; curr=curr->next; } if(curr==head) return -EINVAL; if(conn_hub->curr_read==curr) conn_hub->curr_read=curr->next; if(conn_hub->curr_write==curr) conn_hub->curr_write=curr->next; if(conn_hub->curr_except==curr) conn_hub->curr_except=curr->next; List_del(curr); Free(record_elem); new_conn=(struct tcloud_connector *)connector; new_fd=new_conn->conn_ops->getfd(new_conn); if(new_fd<=0) return -EINVAL; FD_CLR(new_fd,&conn_hub->readfds); return 0; }
int list_queue_get(void * list_queue,void ** record) { LIST_QUEUE * queue; Record_List * slot; queue=(LIST_QUEUE *)list_queue; if(queue->record_num==0) { *record=NULL; return 0; } slot=(Record_List *) (queue->queue_list.list.next); *record=slot->record; queue->record_num--; List_del(&slot->list); Free(slot); return queue->record_num; }
/** Delete an item from the tail of the given list * * @param list The list where item deleted from * @return The item that be deleted from the list */ inline void *List_delFromTail(UTIL_LIST *list) { void **tail = list->last; return List_del(list, tail); }