isZombieInstance function

bool isZombieInstance({
  1. required Object instance,
  2. required dynamic releaseFn(),
})

Verifica si una instancia es "zombie" y ejecuta su limpieza.

Un objeto se considera "zombie" cuando:

  1. Ya no está en la lista de objetos activos (_notZombieList)
  2. No ha sido previamente marcado como zombie (_zombieList)

Cuando se detecta un zombie:

  1. Se ejecuta la función de limpieza
  2. Se marca como zombie procesado
  3. Se evita su limpieza duplicada

Parámetros:

  • instance: El objeto a verificar
  • releaseFn: Función de limpieza a ejecutar si es zombie

Retorna:

  • true si el objeto es zombie (ya sea procesado o nuevo)
  • false si el objeto sigue activo

Implementation

bool isZombieInstance({
  required Object instance,
  required Function() releaseFn,
}) {
  if (_zombieList.containsKey(instance.hashCode)) {
    return true;
  }
  if (!_notZombieList.containsKey(instance.hashCode)) {
    releaseFn();
    _zombieList[instance.hashCode] = true;
    return true;
  }
  return false;
}