Błąd #69
Wyścig w EDP
Data rozpoczęcia:
2011-02-23
Data oddania:
% Wykonania:
100%
Opis
Wyścig prowadzi do błędu w edp_e_manip.cc:58
, tj. linii:
lib::MotorArray servo_desired_motor_pos(sb->command.parameters.move.abs_position, number_of_servos);
Jest ona wywoływana z wątku serva przez wątek tworzony w konstuktorze klas
servo_buffer
.Problem w tym, że jeśli ten wątek wystartuje za szybko, to wskaźnik "sb" nie zdąży być przypisany.
U mnie wywala się to w jakiś 20% uruchomień.
Historia
#1 Uaktualnione przez Tomek Winiarski ponad 13 lat temu
- Zmieniono Status z Nowy na Zamknięty
- Ustawiono Przypisany do na Tomek Winiarski
- Zmieniono % Wykonania z 0 na 100
dodalem dodatkowy condition synchroniser powstrzymujacy watek servo do czasu przypisania wskaznika