Обработка утечки - Handle leak

А справиться с утечкой это тип программная ошибка это происходит, когда компьютерная программа просит ручка к ресурс но не освобождает ручку, когда она больше не используется. Если это происходит часто или неоднократно в течение длительного периода времени, большое количество ручек может быть помечено как используемые и, следовательно, недоступные, что приведет к проблемы с производительностью или крушение.

Термин происходит от утечка памяти. Утечки обработки, как и утечки памяти, являются конкретными случаями утечки ресурсов.

Причины

Одна из причин утечки дескриптора - это когда программист ошибочно полагает, что получение дескриптора объекта - это просто получение неуправляемого ссылка, не понимая, что на самом деле выполняется подсчет, копирование или другая операция. Другой возникает из-за плохого Обработка исключений шаблоны проектирования когда программисты не учитывают, что при возникновении исключения и преждевременном выходе из подпрограммы код очистки в конце подпрограммы может не выполняться.

Примером этого может быть получение дескриптора устройства отображения. Программисты могут использовать этот дескриптор для проверки некоторых свойств (например, запроса поддерживаемых разрешений), а затем просто продолжить, даже не отпуская дескриптор. Если дескриптор был просто указателем на некоторую структуру данных без дополнительного управления, то разрешение выхода дескриптора за пределы области не вызовет проблемы. Однако во многих случаях такие дескрипторы должны быть явно закрыты или освобождены, чтобы избежать утечки ресурсов, связанных с ними; точные требования к работе с дескриптором зависят от интерфейса.