Projekt

Ogólne

Profil

Błąd #405

Wyścig w UI

Dodane przez Anonimowy ponad 13 lat temu. Zaktualizowane ponad 13 lat temu.

Status:
Zamknięty
Priorytet:
Wysoki
Przypisany do:
Kategoria:
UI
Data rozpoczęcia:
2011-04-22
Data oddania:
% Wykonania:

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

Eksportuj do Atom PDF