Go: Nueva librería facilita la depuración de bloqueos

Fuentes: GitHub - stevenctl/deadlog: Find mutex deadlocks in Go code.

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.