semaphore.h, ou comment faire croire que ça existe... |
Bienvenue invité ( Connexion | Inscription )
Il est interdit de poster directement à la racine de ce forum.
Veuillez créer votre topic dans le sous-forum approprié.
semaphore.h, ou comment faire croire que ça existe... |
3 Aug 2004, 23:21
Message
#1
|
|
Méchant modérateur paranoïaque Groupe : Modérateurs Messages : 10 755 Inscrit : 24 Jan 2002 Lieu : Confoederatio Helvetica, Kanton Wallis Membre no 1 865 |
J'ai besoin de sémaphores.... avec des pthreads. Je m suis dis que le semaphore.h serait tout à fait judicieux.... mais voilà, c'est implémenté à moitié, faut passer par sem_open() et non sem_init() qui n'est pas implémenté (étonnant puisque la focntion est présente dans le .h enfin..).
Y a quoi d'autre, parce qu'à coup de sem_open je n'arrive pas à m'en sortir, j'ai des erreurs dans tous les coins sur les sem_wait etc. -------------------- Nothing Else Matters
|
|
|
5 Aug 2004, 02:33
Message
#2
|
|
Méchant modérateur paranoïaque Groupe : Modérateurs Messages : 10 755 Inscrit : 24 Jan 2002 Lieu : Confoederatio Helvetica, Kanton Wallis Membre no 1 865 |
CODE int n = 2; /* Nombre de taches */ pthread_cond_t *cond; pthread_mutex_t *verrou; void rendez_vous () { pthread_mutex_lock (verrou); n = n - 1; if (n == 0) pthread_cond_broadcast (cond); else pthread_cond_wait (cond, mutex); n = n + 1; pthread_mutex_unlock (verrou); } un truc pas trop loin de ça ..... je pensais à un type de rendez-vous proche de celui qui existe en ada... où tu peux filer des données d'une tâche à une autre de manière assez simple, sans générer d'attente active. Cela permet de gérer particulièrement bien le synchronisme.... En gros j'aurais besoin d'une tache de contrôle qui contient un tableau de valeurs, plusieurs taches (un nombre variable au cours du temps) vient chercher une à une ces valeurs et les traite (elle traitent toutes la même valeur en même temps (elles doivent commencer le traitement en même temps). Quand le traitement de toutes les valeurs a été fait on ajoute une tache... et ainsi de suite. mais je vois que je vais devoir le réinventer :/ .... -------------------- Nothing Else Matters
|
|
|
19 Dec 2007, 15:47
Message
#3
|
|
Nouveau Membre Groupe : Membres Messages : 36 Inscrit : 25 Sep 2007 Membre no 95 586 |
CITATION(dulrich @ 5 Aug 2004, 02:33) [snapback]799929[/snapback] je pensais à un type de rendez-vous proche de celui qui existe en ada... où tu peux filer des données d'une tâche à une autre de manière assez simple, sans générer d'attente active. Cela permet de gérer particulièrement bien le synchronisme.... Non, tu n'as pas cela en C. C'est d'ailleurs la force d'Ada : avoir une lib de tasking et de gestion de la concurrence super forte au niveau sémantique, alors qu'en C, il faut que tu te dépatouilles toi-même à coup de mutex et autres conditions. Revers de la médaille : Ada nécessite une runtime pour gérer tout cela ... |
|
|
Nous sommes le : 19th May 2024 - 07:57 |