Manejar la fuga - Handle leak

Una fuga de identificador es un tipo de error de software que ocurre cuando un programa de computadora solicita un identificador para un recurso pero no libera el identificador cuando ya no se usa. Si esto ocurre con frecuencia o repetidamente durante un período prolongado de tiempo, es posible que una gran cantidad de identificadores se marquen como en uso y, por lo tanto, no estén disponibles, lo que provocará problemas de rendimiento o un bloqueo .

El término se deriva de la pérdida de memoria . Manejar fugas, como fugas de memoria, son casos específicos de fugas de recursos .

Causas

Una causa de una fuga de identificador es cuando un programador cree erróneamente que recuperar un identificador de una entidad es simplemente obtener una referencia no administrada , sin comprender que se está realizando un recuento, una copia u otra operación. Otro ocurre debido a patrones de diseño de manejo de excepciones deficientes cuando los programadores no consideran que cuando ocurre una excepción y una subrutina se sale prematuramente, el código de limpieza al final de la rutina puede no ejecutarse.

Un ejemplo de esto podría ser recuperar un identificador del dispositivo de visualización. Los programadores pueden usar este identificador para verificar alguna propiedad (por ejemplo, consultar las resoluciones admitidas) y luego simplemente continuar sin soltar el identificador. Si el identificador fuera solo un puntero a alguna estructura de datos sin administración adicional, entonces permitir que el identificador pase fuera del alcance no causaría ningún problema. Sin embargo, en muchos casos, dichos identificadores deben cerrarse o liberarse explícitamente para evitar fugas de recursos asociados con ellos; los requisitos exactos de lo que se debe hacer con un identificador varían según la interfaz.