Multithread - pointeur sur structure
Bonjour à tous,
je travaille sous WinXPSP3 / MS Visual Studio Express Edition 2008 / langage C.
J'ai créé un pointeur *pTab sur un tableau de structure FLOW_UNIT_s de taille N.
La structure FLOW_UNIT_s est décrite ci - dessous.
Code:
1 2 3 4 5 6
| typedef struct FLOW_UNIT_s{
time_t tF;
int inc;
int cnt;
double volt;
}FLOW_UNIT_s; |
La zone mémoire pointée par *pTab est actualisée en temps réel par un thread1. Le thread1 écrit dans *pTab, attend 40 ms, écrit dans *p(Tab+1), attend 40 ms, .... jusqu'à *p(Tab+N-1).
Quand on arrive au Nième élément, un autre thread2 doit faire une copie de ce qui est contenu à l'instant t dans la zone mémoire pointée par *pTab (pendant ce temps, le thread1 continue à faire son travail, c'est à dire commence à écraser *pTab, *(pTab+1), ...).
Ma question est la suivante : comment puis-je faire une copie du contenu de la zone mémoire pointée par *pTab à un instant donné dans une variable temporaire alors que le thread1 continue sa mise à jour ?
J'ai défini un nouveau pointeur *pTab_temp = *pTab. Mais forcément la copie est actualisée en même temps que *pTab.
Je suis preneur des idées que cette discussion vous inspirera.
Merci d'avance.
LePapat