Bonjour, voila mon problème, j'ai un programme qui cherche des données dans un fichier et envoi certaines d'entre elles par socket à un autre programme.
Il y a une fonction principale qui lit dans un fichier et place les nouvelles données dans une liste de 100 "places" (une sorte de buffer) et un thread qui lit chaque donnée et les envoi.
Shématisons:
Le problème c'est que de temps en temps le thread et le main lise et écrive au même moment ce qui fait buggeur le programme.
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
21
22
23
24
25
26
27
28
29
30
31
32 //ma structure struct DATA { int size; char data[256]; }; //mon thread DATA* ldata=(DATA*)param; while(1) { for(int i=0;i<100;i++) { while(ldata[i].size==0) Sleep(1000); //envoi par socket de ldata[i].data ldata[i].size=0; } } //et mon main() DATA* ldata=new data[100]; int compteur=0; while(on lit les donnée tant qu'il y en a) { while(ldata[compteur].size>0) Sleep(1000); memcpy(ldata[compteur].data,newdatasize); ldata[compteur].size=newdatasize; compteur++; if (compteur==100) compteur=0; }
Comment devrais je m'y prendre SVP ?
Merci
Partager