Является ли libgcrypt поточно-ориентированным?

Является ли библиотека libgcrypt поточно-ориентированной? В случае, если я не делю ресурсы этой библиотеки между потоками, но создаю различный контекст в каждом потоке. Язык программирования C ++.

-2

Решение

Документация говорит, libgcrypt Потокобезопасен с условиями:

Как упоминалось ранее, библиотека Libgcrypt является поточно-ориентированной, если вы
придерживаться следующих требований:

  • Если вы используете pthread и ваши приложения разветвляются и не вызывают напрямую exec (даже вызывая функции stdio), все виды
    могут возникнуть проблемы. Будущие версии Libgcrypt будут пытаться очистить
    использование pthread_atfork, но даже это может привести к проблемам. Это
    Общая проблема почти со всеми приложениями, использующими pthread и fork.
  • Функция gcry_check_version должна вызываться перед любой другой функцией в библиотеке. Чтобы добиться этого в многопоточных программах,
    Вы должны синхронизировать память по отношению к другим потокам, которые
    Также хочу использовать Libgcrypt. Для этого достаточно позвонить
    gcry_check_version перед созданием других потоков с использованием Libgcrypt1.
  • Как и функция gpg_strerror, функция gcry_strerror не является поточно-ориентированной. Вместо этого вы должны использовать gpg_strerror_r.

С дополнительным предостережением:

По крайней мере, это верно для потоков POSIX, так как pthread_create является
функция, которая синхронизирует память с уважением к другим потокам.
Есть много функций, которые имеют это свойство, полный список может
можно найти в POSIX, IEEE Std 1003.1-2003, Базовые определения, выпуск 6, в
определение термина «синхронизация памяти». Для другой темы
пакеты, более спокойные или более строгие правила могут применяться.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]