void liste_free(liste lsb, void ( free_ele( void * ) ) ) { liste_element tmp_avant=lsb->prem; liste_element tmp; if( tmp_avant != NULL ) { tmp = lsb->prem->suiv; while( tmp != NULL ) { if( tmp_avant->ele != NULL ) { free_ele(tmp_avant->ele); } free(tmp_avant); tmp_avant = tmp; tmp = tmp->suiv; } if( tmp_avant->ele != NULL ) { free_ele(tmp_avant->ele); } free(tmp_avant); } free(lsb); }
void finish_process() { schedule(); if (cur_proc) { fprintf(stdout, "%d ", cur_proc->val); free_ele(cur_proc); num_processes--; } }
void liste_sup(liste lsb, void * sup, void (free_ele( void * ) ) ) { if ( lsb->prem == NULL ) { return; } liste_element tmp = lsb->prem; liste_element tmp_avant = NULL; if( tmp->ele == sup ) { lsb->prem = tmp->suiv; if( sup != NULL ) { free_ele(sup); } free(tmp); } else { do { tmp_avant = tmp; tmp=tmp->suiv; } while( tmp->ele!=sup ); tmp_avant->suiv = tmp->suiv; if( sup != NULL ) { free(sup); } free(tmp); } lsb->nb_ele--; return; }