LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Обычно в документации библиотечных вызовов указывается, thread-safe функция или нет. А если ты дергаешь их в многопотоке своего кода – то задача синхронизации их вызовов на твоих плечах.

Ага, и при этом эта документация не учитывает гонку в getenv. Сейчас проверил у curl, там про это ничего нет.

В любом случае, getenv никак мютексом не защитишь. Просто потому что он может быть вообще в любой библиотеке. Или ты серьёзно предлагаешь вообще все внешние библиотечные вызовы под мютекс совать?

Я сам наступал на грабли с функциями типа EVP_MD_CTX_new() пока не разобрался со всеми правилами их использования в многопотоке :(

API OpenSSL – один из наиболее ублюдочных что я видел в своей жизни. С ним не разбираться надо, его надо выкинуть на помойку и забыть как страшный сон.

Исправление hateyoufeel, :

Обычно в документации библиотечных вызовов указывается, thread-safe функция или нет. А если ты дергаешь их в многопотоке своего кода – то задача синхронизации их вызовов на твоих плечах.

Ага, и при этом эта документация не учитывает гонку в getenv. Сейчас проверил у curl, там про это ничего нет.

В любом случае, getenv никак мютексом не защитишь. Просто потому что он может быть вообще в любой библиотеке. Или ты серьёзно предлагаешь вообще все внешние библиотечные вызовы под мютекс совать?

Исходная версия hateyoufeel, :

Обычно в документации библиотечных вызовов указывается, thread-safe функция или нет. А если ты дергаешь их в многопотоке своего кода – то задача синхронизации их вызовов на твоих плечах.

Ага, и при этом эта документация не учитывает гонку в getenv. Сейчас проверил у curl, там про это ничего нет.