Bonjour à tous,
Je porte une appli de mandriva 2005 sous mandriva 2008. J'ai le scénario suivant :
1. Je compile sous 2005 (toute exécution sous 2005 est OK)
2. J'exécute une première fois sous 2008 : OK
3. J'exécute une seconde fois sous 2008 : NOT OK
4. Pareil pour toutes les fois d'après
5. Je repasse et exécute sous 2005 : OK
6. Je reviens et exécute sous 2008 : OK
7. Les exécutions d'après sous 2008 : NOT OK !!!
Le problème vient du faire que lors des exécutions NOT OK (qui ne conduisent pas à un crash mais a un comportement incohérent de l'application), un thread est bloqué par un sem_wait sur un sémaphore, donc la valeur est bien incrémentée par un sem_post et qui défile donc 0,1,2,3,... .
Ce n'est pas un problème de "logique des sémaphores" je dirai, car tout fonctionne depuis longtemps sous mandriva 2005. Ma question est donc la suivante : est-il possible que les sémaphores aient été implémentés différemment dans les distrib mandriva 2005 et 2008 ?
Merci d'avance pour vos réponses !!!
Partager