А есть стек трейс? может на нем что будет видно
Могу предположить, что defer вызывается перед выходом из области видимости, то есть перед return. Получается, что unlock происходит раньше считывания
Нет-нет, defer как раз и есть единственный (?) способ выполнить какой-либо код после return
Понял, меня просто смутила формулировка «перед выходом из области видимости», поэтому предположил, что такое возможно.
В том-то и дело, что "перед выходом из области видимости" — это не "перед возвратом управления", а в буквальном смысле перед заверщающей фигурной скобкой, которая эту область видимости и ограничивает. :)
Вроде еще к написанному выше из разных тредов лок на get и set не сработает. Поэтому да, полезно было бы стэк глянуть.
+1 не спасает лок в геттерах и сеттерах от разных потоков
Обсуждают сегодня