Bonjour,
j'utilise dans un prog une liste chain�e o� chacun des maillons est allou� avec new, desallou� avec delete.
Mon probleme : si dans le thread n�1 je travaille sur un maillon, et que dans le thread n�2 je d�truits ce maillon (en le mettant � NULL apres le delete), je me retrouve dans le thread n�1 avec un maillon non nul, mais d�truit, et du coup je ne peux pas faire if(p != NULL)
En gros :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 thread 1 : csPile.Lock(); info = p->info; csPile.Unlock(); thread 2 : csPile.Lock(); delete p; p = NULL; csPile.Unlock(); thread 1 : csPile.Lock(); if(p != NULL) //ça passe info = p->info; //ça plante csPile.Lock(); Merci par avance
Partager