// Make the code thread safe
//----------------------------------------
HANDLE hIOMutex= CreateMutex (NULL, FALSE, NULL);
WaitForSingleObject( hIOMutex, INFINITE );
//----------------------------------------
TASession *my_ses;
for(int is=0;is<sessions->Count;is++)
{
my_ses=(TASession*)sessions->Items[is];
if(my_ses->socket_handle==Socket->SocketHandle)
{
conn_id=my_ses->session_id;
conn=is;
break;
}else conn=-1;
}
if(conn!=-1)
{
delete my_ses;
sessions->Delete(conn);
}
else
Terminate();
// end of thread safe code
ReleaseMutex( hIOMutex);
Imam ovakav kod, u kojeg imam vise thredova koji upisuju neke podatke u jedne liste,
e sad poenta je da ne dodje do kolizije izmegju thredovima pre brisanje iz liste thread ceka jednog mutexa.
Nije mi jasno, koja je prednost ili mana koriscenjem imena kod mutexima ?
Najverojavatnije da se moze koristiti isti mutex za dva razlicna podrucja u kodu ?
Dali ako nisam kreirao mutex sa imenom, WaitForSingleObject zna kojeg mutexa treba da ceka ?
ili kako da uradi dva razlicna dela u kodu da zakljucam istim mutexom (Valjda sa mutexom sa specificnog imena)?
Pozdrav