fork без exec и pthread_mutex_t, используемый разделяемым объектом
я работаю с веб-сервером проекта, который выполняетfork
безexec
, Программа зависит от OpenSSL, и OpenSSL требуется несколько блокировок (CRYPTO_NUM_LOCKS
а точнее около 40 на данный момент). Замки, как правило,pthread_mutex_t
в Linux, и они устанавливаются / создаются в главном потоке до создания каких-либо потоков.
fork
создает новый процесс. Однако послеfork
, ручки, используемые в мьютексе, копируются мелко. То есть они имеют одинаковые биты, но я неЯ считаю, что они имеют полезную ценность в контексте нового процесса.
Я думаю, что общая проблема заключается в безопасности потоков и разветвлений в общем объекте.OpenSSL вики страница наlibcrypto
обсуждаетсярезьба и вилка безопасности, и я'Я не уверен, как решить некоторые проблемы.
Есть ли способ указать, что библиотека (такая как OpenSSL) должна быть повторно инициализирована?fork