Тотальная неудачница и убийца жёстких дисков.
#post-id: 5534-04-48
#original-date: 20.09.2015 Sun
#original-time: 4:48 AM
#original-day: 5534
#original-host: WinXP Home SP3 (Build 2600)
Интересный текст о том, как появляются зомби-процессы. Не знала, что не закрытый манипулятор оставляет процесс в памяти OO
The customer called this process near death, but the more conventional term for it is zombie. In fact, zombie isn't a good term either, because this process and this thread are well and truly dead, never to walk again.
A better name would be corpse. The process and thread are dead. They're just lying there, rotting away in memory, waiting for all references to be released so they can disappear entirely.
http://blogs.msdn.com/b/oldnewthing/archive/2015/09/18/10642343.aspx
Кстати, не совсем по теме, но близко. Мне нравится такой прикол. Допустим, какая-то программа внедряет свою DLL в другие процессы. Например, это может быть хук. Или раширение Проводника, которое загрузилось, когда программа вызвала контекстное меню (пользователь кликнул прявой кнопкой мыши по файлу в диалоге сохранения). Эта DLL может создать поток, в котором что-то делает или не делает ничего, просто ждёт.
Потом пользователь закрывает программу, все потоки уничтожаются нормально, окна закрываются, главный поток с очередью сообщений тоже завершается, но программа остаётся висеть в памяти. Почему? Да потому что разработчик не знал, что там могут быть ещё какие-то потоки кроме тех, что он сам создал.
Такое встречается не так часто, но бесит неимоверно =_=
#original-date: 20.09.2015 Sun
#original-time: 4:48 AM
#original-day: 5534
#original-host: WinXP Home SP3 (Build 2600)
Интересный текст о том, как появляются зомби-процессы. Не знала, что не закрытый манипулятор оставляет процесс в памяти OO
The customer called this process near death, but the more conventional term for it is zombie. In fact, zombie isn't a good term either, because this process and this thread are well and truly dead, never to walk again.
A better name would be corpse. The process and thread are dead. They're just lying there, rotting away in memory, waiting for all references to be released so they can disappear entirely.
http://blogs.msdn.com/b/oldnewthing/archive/2015/09/18/10642343.aspx
Кстати, не совсем по теме, но близко. Мне нравится такой прикол. Допустим, какая-то программа внедряет свою DLL в другие процессы. Например, это может быть хук. Или раширение Проводника, которое загрузилось, когда программа вызвала контекстное меню (пользователь кликнул прявой кнопкой мыши по файлу в диалоге сохранения). Эта DLL может создать поток, в котором что-то делает или не делает ничего, просто ждёт.
Потом пользователь закрывает программу, все потоки уничтожаются нормально, окна закрываются, главный поток с очередью сообщений тоже завершается, но программа остаётся висеть в памяти. Почему? Да потому что разработчик не знал, что там могут быть ещё какие-то потоки кроме тех, что он сам создал.
Такое встречается не так часто, но бесит неимоверно =_=