Leer desde una tabla hash mientras se están realizando actualizaciones no es seguro para subprocesos.
Ah, veo lo que quieres decir, ¿deberíamos mover la llamada @lock.synchronise
a get
lugar?
¿No estoy seguro de que lo necesitemos en set
después de eso?
Lo necesita en ambos métodos porque está leyendo y escribiendo en @constants
. No puede tener acceso sincronizado a la misma tabla hash en ninguna ubicación. Las operaciones de solo lectura no son seguras con escrituras simultáneas.
Muy bien, fusioné un cambio para envolver el @constants
en una sincronización.
¡Gracias, @ioquatix por la inspiración!