Bonjour,
j'ai écrit un programme qui communique avec des boitiers contenant du C embarqué. Pour chacun de ces boitiers, j'ai une socket et trois threads, qui envoient des commandes et reçoivent le résultat.
Le problème est que lorsque j'affiche le contenu du buffer, de temps en temps il contient la valeur du résultat d'une autre commande. J'ai dissocié les buffer pour chaque thread afin d'éviter le problème mais cela continue. J'ai aussi posé des mutex avant et après chaque utilisation des commandes et buffer, et je vide le buffer dès que j'en ai plus besoin. Je me demande ce que j'ai pu omettre pour éviter qu'un buffer soit écrasé. Je compile avec les options :
#define _GNU_SOURCE
#define _REENTRANT
#define _THREAD_SAFE
Mais apparemment cela ne suffit pas pour que mes instructions soient thread-safe.
Une idée ?