/* un petit exemple d'utilisation */ int main(int argc, char **argv) { list_item *ma_liste; list_item *vlist_move; /* initialise la liste comme une liste vide (pas d'elements) */ ma_liste = NULL; /* on rajoute la valeur 4 au debut de la liste */ ma_liste = inserer_debut(ma_liste, 4); /* on rajoute la valeur 3 au debut de la liste */ ma_liste = inserer_debut(ma_liste, 3); /* on rajoute la valeur 44 a la fin de la liste */ ma_liste = inserer_fin(ma_liste, 44); /* on rajoute la valeur 5 a la fin de la liste */ ma_liste = inserer_fin(ma_liste, 5); /* on supprime la valeur 44 de la liste */ ma_liste = supprimer(ma_liste, 44); /* on parcours la liste pour en afficher le contenu */ for(vlist_move=ma_liste;vlist_move!=NULL;vlist_move=vlist_move->next) { printf("valeur %d\n",vlist_move->val); } return(0); }
void * creation_trie_thread(void * args){ char * fichier; TrieHybride *t = NULL; pthread_mutex_lock(&mutex_fics); while((fichier=(char *)supprimer_debut(fics))){ pthread_mutex_unlock(&mutex_fics); t=lire_fichier_th(fichier,t); pthread_mutex_lock(&mutex_tries); inserer_debut(tries,t); sem_post(&sem); pthread_mutex_unlock(&mutex_tries); t=NULL; free(fichier); pthread_mutex_lock(&mutex_fics); } pthread_mutex_unlock(&mutex_fics); return NULL; }
void * fusion_thread(void * args){ int nbfics=*((int *)args); int i=1; TrieHybride *t=NULL; TrieHybride *t2 =NULL; sem_wait(&sem); pthread_mutex_lock(&mutex_tries); t=supprimer_debut(tries); pthread_mutex_unlock(&mutex_tries); while(i<nbfics){ sem_wait(&sem); i++; pthread_mutex_lock(&mutex_tries); t2=supprimer_debut(tries); pthread_mutex_unlock(&mutex_tries); t=fusion_trie_hybride(t,t2); free_trie_hybride(t2); } inserer_debut(tries,t); pthread_cond_signal(&cond); return NULL; }