Имя пользователя:
Пароль:
 

Название темы: Как убить процесс ?
Показать сообщение отдельно

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


AlieNET
То что именно "стенка" является причиной ошибки, понятно. С самого начала, собственно Меня-то интересует вопрос о невозможности снять зависший процесс, а не причина его "зависания". Разница в работе стенок, скорее всего, вот в чём: OutPost при попытке открыть программой сокет на запрещённом порту сразу посылает её куда подальше. А ZA делает по-другому: он говорит "сейчас, сейчас", "подвешивая" соединие. Т.е. ZA постоянно возвращает EAGAIN на попытку accept'а. Или ETIMEDOUT на попытку connect'а. Очевидно, участок кода, отвечающего за соединение, находится где-то в критикал-секшион одного из многочисленных треадов, устанавливающих соедиения.  И попытка снять с выполнения такой процесс затормаживается, поскольку основнойй процесс пытается дождаться завершения вторичных (тех, что с соедиениями), а они никак не могут отлепится от ZA. Почему нет прав на вторичное снятие - потому что система уже пытается снять процесс и ждёт когда он ей скажет (так, тут туман пошёл) что он готов завершиться. И Вы снимаете уже снятие процесса, а это нельзя. Дальше сплошной туман. Интеграция в IE, взаимодействие со службами...

Ну, если Вас интересовало, как избавится от проблемы, то Вы нашли решение, отлично! Собственно, дальше можно не копать. А теория подождёт... Я по-прежнему не могу занятся reget'oм вплотную, сорри

Отправлено: 09:27, 02-07-2004 | #16

Название темы: Как убить процесс ?