Projekt

Ogólne

Profil

Błąd #95

Usunąć metodę i obsługę ecp_stop_accepted_handler()

Dodane przez Anonimowy prawie 14 lat temu. Zaktualizowane ponad 10 lat temu.

Status:
Odrzucony
Priorytet:
Normalny
Przypisany do:
-
Kategoria:
-
Data rozpoczęcia:
2011-02-25
Data oddania:
% Wykonania:

0%


Opis

Ta metoda to barok. Korzysta z niej tylko robot Neuronowy i jest to jakieś dziwne obejście, ale nie wiem czego...
Braku destruktora? Niespodziewanego scenariusza z ECP_STOP?

Historia

#1 Uaktualnione przez Tomek Winiarski ponad 13 lat temu

  • Zmieniono Status z Nowy na Zamknięty

desktruktor nie jest odpalany w tamtej obsludze wyjatku, zwroc uwage ze jestemy w petli for procesu ecp. Moim zdaniem rozwiazanie jest ok.

#2 Uaktualnione przez Tomek Winiarski ponad 13 lat temu

  • Zmieniono Status z Zamknięty na Odrzucony

#3 Uaktualnione przez Anonimowy ponad 13 lat temu

  • Zmieniono Status z Odrzucony na W Toku

Zwróć uwagę, że nawet jedyny użytkownik tego tworu (autor?) nie wie jak z niego korzystać...

Tam gdzie jest tworzony obiekt neuronSensor jest też tworzony obiekt neuronGenerator. Teraz powiedz mi:
  • czemu pierwszy musi być usuwany w ecp_stop_accepted_handler a drugi już nie?
  • ewidentnie pod wskaźnik związany z generatorem jest przypisywanych wiele obiektów, a kasowany tylko jeden ostatni - w destruktorze? Wyciek.
  • przy rzuceniu wyjątku i zakończeniu działania ECP obiekt neuronGenerator zostanie usunięty (w odpaleniu destruktora ~Neuron()), a neuronSensor już nie (bo nie każdy wyjątek powoduje odpalenia ecp_stop_accepted_handler).

Jest to ewidentna inkarnacja problemu metod initialize zastępujących konstruktory oraz innych dziwnych tworów, które w założeniu mają zastępować destruktory a tego wcale nie robią. Wprowadzanie takich rzeczy prowadzi prosto do wycieków, co pokazałem powyżej.

Jeżeli do przepływu sterowania wykorzystuje się mechanizm wyjątków (jak w przypadku obsługi ECP), to należy to robić konsekwentnie.
Obecne rozwiązanie nie jest zatem OK i należy je zastąpić wprowadzeniem obiektu, którego czas życia będzie związany ze stanami procesu ECP, w szczególności obsługą STOP-u.

#4 Uaktualnione przez Tomek Winiarski ponad 10 lat temu

  • Zmieniono Status z W Toku na Odrzucony

Eksportuj do Atom PDF