allora, uso visual studio 2010 ultimate e il suo debugger.
Ho deciso di postare il codice completo della funzione nella quale viene chiamata foo..ossia RiempiStruttura
codice:
int Client::MainLoop(PVOID data)
{
CreateThread(0,0,(LPTHREAD_START_ROUTINE)RemoveKeyForResidence,NULL,0,0);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)OnlineLoop,NULL,0,0);
for(int leave = false, uscire = false; uscire == false; leave = false)
{
static int regola_latenza = 20;
string sorgente_pagina = Client::GetDataFromServer("classes.php?request=ViewCommandFromQueueUsingID&id=" + ID);
if(sorgente_pagina == "")
{
regola_latenza++;
leave = true;
switch(regola_latenza)
{
/*
3.75 secondi -> 1 secondo
8.75 secondi -> 1.3 secondi
21.75 secondi -> 1.5 secondi
36.75 secondi -> 2.5 secondi
1.1.75 minuti -> 15 secondi
2.16.75 minuti -> 60 secondi
*/
case 0: Client::latenza = 750; break;
case 5: Client::latenza = 1000; break;
case 10: Client::latenza = 1300; break;
case 20: Client::latenza = 1500; break;
case 30: Client::latenza = 2500; break;
case 40: Client::latenza = 15000; break;
case 45: Client::latenza = 60000; break;
}
}
else
{
regola_latenza = 0;
}
comando cmd;
//riempie la struttura di dati
if(leave == false)
cmd = Client::RiempiStruttura(sorgente_pagina);
//etc etc etc...questa parte non interessa più sorgente pagina
Sleep(Client::latenza);
}
return 0;
}