Faraday: #get не является потокобезопасным

Созданный на 26 окт. 2019  ·  4Комментарии  ·  Источник: lostisland/faraday

https://github.com/lostisland/faraday/blob/d5eaa4ffe04b1cba00691b1cc2b2541e91093bf1/lib/faraday/adapter_registry.rb#L14 -L26

Чтение из хеш-таблицы во время обновления не является потокобезопасным.

Все 4 Комментарий

А, я понимаю, что вы имеете в виду, должны ли мы вместо этого переместить вызов @lock.synchronise в get ?
Я не уверен, что после этого он нам понадобится в set ?

Вам это нужно в обоих методах, потому что вы читаете и записываете в @constants . У вас не может быть синхронизированного доступа к одной и той же хэш-таблице ни в каких ситуациях. Операции только для чтения небезопасны при одновременной записи.

Хорошо, я объединил изменение, чтобы обернуть @constants в синхронизацию.

Спасибо @ioquatix за вдохновение!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги