La lecture à partir d'une table de hachage pendant qu'il y a des mises à jour n'est pas thread-safe.
Ah je vois ce que tu veux dire, devrions-nous plutôt déplacer l'appel @lock.synchronise
dans get
?
Je ne suis pas sûr que nous en aurions besoin dans set
après ça ?
Vous en avez besoin dans les deux méthodes car vous lisez et écrivez dans @constants
. Vous ne pouvez pas avoir un accès synchronisé à la même table de hachage dans aucune situation. Les opérations de lecture seule ne sont pas sûres avec des écritures simultanées.
D'accord, j'ai fusionné une modification pour envelopper le @constants
dans une synchronisation.
Merci @ioquatix pour l'inspiration !