Błąd #405
Wyścig w UI
0%
Opis
Synchronizacja przez delay(1)
w metodzie Interface::create_threads()
jest nieskuteczna.
U mnie wywala się tak 1/5 uruchomień UI.
Historia
#1 Uaktualnione przez Tomek Winiarski ponad 13 lat temu
- Ustawiono Kategoria na UI
- Ustawiono Przypisany do na Tomek Winiarski
#2 Uaktualnione przez Tomek Winiarski ponad 13 lat temu
- Zmieniono Status z Nowy na Zamknięty
U mnie problem nie wystepowal. Usunalem delay i zmienilem kolejnosc powolywania watkow na moim zdaniem odpowiedniejsza. Powiem tak, ja tam wyscigu tak czy siak nie widzialem ale cos mi moglo umknac. Jak problem przy starcie sie powtorzy to rzuc okiem na zawartosc core.
pozdro
#3 Uaktualnione przez Anonimowy ponad 13 lat temu
To, że u Ciebie wyścig nie występuje nie świadczy o tym, że go nie ma.
Wstawianie kodu w stylu "delay(1)" to nie sposób na rozwiązywanie problemów.
Jeżeli już z jakiś względów nie stać nas na poprawne rozwiązanie synchronizacji wątków,
to niech przynajmniej to będzie:
// tutaj zakładamy, że wzkaźnik PTR jest inicjalizowany na NULL
while(!ptr) delay(1);
// tutaj można już bezpiecznie użyć wskaźnika
Prawdopodobnie jest to problem, który rozwiązałeś "przy przejściu na nowe Ubuntu".
#4 Uaktualnione przez Tomek Winiarski ponad 13 lat temu
dodalem lib::condition_synchroniser thread_started do wątku ui_sr