1
Système / Re : Re : Bug avec les threads. (Les mutex ne marchent pas dans un certain cas précis.)
« le: Août 08, 2013, 09:22:04 pm »J'ai essayer de mettre des mutex.lock et unlock dans cette fonction mais ça ne résoud pas le problème.
Tu as un problème d'accès sur une zone mémoire invalide (à priori accès en dehors des bornes d'un tableau). Cela n'a rien à voir avec du multithreading, rajouter des mutex ne va rien changer.
Bon j'ai rajouté ça pour être sur que j ne sois pas plus petit que 0 non plus mais ça ne résous pas le crash, maintenant ça crash tout le temps que ça soit avec le débugueur ou pas.while (j < children.size() && children[j]->isTraveled())
j++;
j--;
j = (j < 0) ? 0 : j;
Si j est un unsigned int, il ne sera jamais négatif (0 - 1 en unsigned int va donner UINT_MAX). Utilise un int.
Au passage si children contient aucun élément, même avec j = 0 ce code est incorrect:
int distMin = children[j]->getCenter().computeDist(finalPos);