[ Riste Pejov @ 12.02.2003. 09:20 ] @
Code: // 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 |