synchronizacja: event czy mutex?

0

potrzebuje stworzyc watek, zatrzymac watek rodzica az dziecko wykona co ma zrobic, a nastepnie wznowie rodzica.

czy lepiej do tego celu uzyc eventu, czy mutexa?
eventow nie lubie uzywac, bo jak watek zdechnie to bede czekal w nieskonczonosc.
natomiast mutex dziala tylko w 1 strone, nie moge zablokowac na nim WaitForSingleObject() 1 watku, i drugiego.

event ustawiam w non-signaled state i juz.
ale jak juz pisalem event odpada.

jakies pomysly?

pisze pod windowsem.

0

Daj WaitForSingleObject uchwyt wątka, na który ma czekać. Żadne eventy tudzież mutexy nie są do tego potrzebne.

0

ale ja nie chce zeby ten watek zostal zabity, on ma dzialac!

po prostu on wykonuje jakas operacje, i sygnalizuje event ze skonczyl, wtedy rodzic dziala dalej.

ale jak juz pisalem, event jest zly, bo jak watek zostanie zabity to bede czekal w nieskonczonosc.

chyba zebym dal WaitForMultipleObjects(), handle przekazal watku i eventa.
jak zwroci event - ok, watek - sprawdzic czy faktycznie padl i obsluzyc sytuacje.

mysle ze mutex bylby tu zlym rozwiazaniem, on zawsze musi miec wlasciciela (a event moze byc not signaled, mutex jest zawsze signaled dla jakiegos watku).

0

W sumie event byłby dobry, no ale nie wiem, o co chodzi z tym zdychaniem wątku. Normalnie do takich sytuacji nie powinno dochodzić.

mysle ze mutex bylby tu zlym rozwiazaniem, on zawsze musi miec wlasciciela

WaitForSingleObject zwraca WAIT_ABANDONED, jeśli wątek, który przejął mutexa, zostanie ubity. Ta opcja będzie dla Ciebie korzystniejsza, tak sądzę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1