Membaca dari tabel hash saat ada pembaruan yang terjadi tidak aman untuk utas.
Ah saya mengerti maksud Anda, haruskah kita memindahkan panggilan @lock.synchronise
ke get
saja?
Saya tidak yakin kita akan membutuhkannya di set
lagi setelah itu?
Anda memerlukannya di kedua metode karena Anda membaca dan menulis ke @constants
. Anda tidak dapat memiliki akses yang disinkronkan ke tabel hash yang sama dalam situasi apa pun. Operasi baca saja tidak aman dengan penulisan simultan.
Baiklah, saya menggabungkan perubahan untuk membungkus @constants
dalam sinkronisasi.
Terima kasih, @ioquatix atas inspirasinya!