Estoy leyendo sobre implementaciones de recolectores de basura, específicamente sobre colectores de marcación y barrido sobre la marcha, y el hecho de que los mutadores funcionan cuando la etapa de marcado no está terminada (y para evitar detener el mundo) se debe usar una barrera de memoria.Implementación de barrera de memoria para un recolector de basura
Así, por ejemplo, si un objeto marcado (negro) es modificado por el mutador para apuntar a un objeto sin marcar (blanco), el objeto blanco debe marcarse en gris (marcado como vivo pero no escaneado aún).
Pero no puedo encontrar ningún detalle de cómo se puede implementar: ¿cómo puedo detectar cuándo se cambia un objeto negro y realizar una acción en ese momento?
¿Pero cómo funciona un coleccionista como boehm gc? No puede insertar código porque funciona en un programa c normal compilado con gcc, por ejemplo. Y leí en alguna parte que usa barreras de memoria. – Damian
Correcto, el recopilador de Boehm usa la protección de VM para implementar barreras. Lo siento si mi comentario entre paréntesis fue críptico. – EmeryBerger