Desarrolladores de Go han lanzado 'deadlog', una nueva biblioteca diseñada para simplificar la depuración de bloqueos de mutex, un problema común en aplicaciones concurrentes. La biblioteca, disponible en GitHub, permite a los programadores reemplazar sync.Mutex y sync.RWMutex con deadlog.Mutex, añadiendo registro detallado de las operaciones de bloqueo. 'deadlog' registra eventos de inicio (START), adquisición (ACQUIRED) y liberación (RELEASED) con un ID de correlación, facilitando la identificación de bloqueos no liberados. Además, ofrece la posibilidad de etiquetar las operaciones de bloqueo con nombres específicos (WithLockName()) y habilitar trazas de pila para un diagnóstico más preciso. La biblioteca incluye una herramienta de análisis (deadlog analyze) que genera informes claros sobre bloqueos 'stuck' (esperando adquisición) y 'held' (no liberados), y proporciona opciones para personalizar el registro, incluyendo la escritura a archivos JSON o el uso de loggers personalizados. El objetivo principal es ayudar a los desarrolladores a identificar y resolver problemas de contención de bloqueos de manera más eficiente.
