j'ai un problème, j'ai ce pointeurs dans mon code de fil et ils sont modifier là-dedans, mais quand il revenir au menu principal les changements ne sont pas là comme ceci:nœud pointé par le pas des changements
Sujets
void threaded_function(Model_factory &mf, ppa::Node *root) { // threads management
try { // n try...
principales
int main(int argc, char *argv[]) { ...
dans l'ensemble je crée une racine de noeud, puis dans le noeud fils est donné séquences et a un bool qui change à vrai comme:
ppa::Node *root;
Et dans les fils travaille (un groupe de threads) je peux obtenir et définir que bool comme je le souhaite, mais quand le groupe de fil se termine par se joindre à tous (coup de pouce) la racine du pointeur me donne 0 sur cette ligne
cout << root->has_sequence() << endl;
Après cela continue et le nœud est rempli à nouveau avec quelque chose, alors ce que je veux demander est pourquoi mon pointeur de nœud ne reflète pas les changements dans les fils, est-il concevoir ou je me trompe (probablement le second) et que devrais-je faire un nœud racine global qui va résoudre mon problème, mais pourquoi?
Les fils sont durs. – jahhaj
Pouvez-vous le réduire à un * minimal * mais complet exemple qui reproduit le problème peut-être? J'essaierais de courir et d'étudier quelque chose de plus petit, mais actuellement c'est trop grand, il manque un 'main()' et dépend de choses externes que nous ne pouvons pas voir. Avez-vous essayé de l'exécuter dans quelque chose comme Helgrind? – Flexo
C'est beaucoup de code – mathematician1975