Мое чтение исходного кода таково, что get
получает блокировку чтения, которая не зависит от блокировки (называемой _notempty
), полученной put
. Если я правильно понимаю, одновременные get
s могут блокировать друг друга, а одновременные put
s могут блокировать друг друга (по модулю использования вами параметра block
), но при получении и установке не блокируется взаимно.