Шедевр индусской программерской мысли

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Ответить
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

22 июн 2006, 13:44

Ну, значит дело такое: имеем мы кмпонент, написанный индусами.
То, что он вылетал с NullPointerException в том случае если конфиг файл имеет флаг Read-Only я еще терпел.
Но сегодня я встретил абсолюный перл: Началось с того, что я поставил брейкпоинт на тот свой метод, который они вызывают чтобы зарегистрироваться.
И тут оказалось, что у них есть отдельный тред, который отслеживает время, которое компонент регистрируется - и он сработал, поскольку метод стоит на брейкпоинте.
Если время истекло, они вызывают метод unregister() в отдельном треде, что вызывает deadlock, поскольку register и unregister это взаимно блокирующие операции.
Но и это еще не все - после этого они создают еще несколько тредов, которые пытаются зарегистрироваться и делают unregister в случае неудачи.
2B OR NOT(2B) = FF
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

22 июн 2006, 21:28

Здорово... Не оскудела талантами земля индийская :)
Ответить