Usando o OpenSSL em um aplicativo multi-threaded

Eu tenho escrito um aplicativo cliente SOAP em C ++ no Ubuntu usando OpenSSL para meu transporte HTTPS e pthreads para threading. Eu tenho um número de threads - um thread central de aquisição de dados que periodicamente obtém threads de trabalho para fazer solicitações SOAP por meio de filas protegidas mutex compartilhadas.

Lendo a documentação do OpenSSL que encontreiO segmento seguro do OpenSSL é seguro? no FAQ do OpenSSL, que descreve os mecanismos necessários para garantir a segurança do thread ao usar o OpenSSL. Eu implementei isso e tudo funciona bem.

A razão da minha pergunta é uma dificuldade conceitual. Eu estava pensando em implementar a mesma funcionalidade que meu aplicativo já tem, mas em vez de usar threads, eu criaria 2 seperateaplicações : Um para o segmento de trabalho (do qual várias cópias seriam executadas) e outro para o segmento de aquisição de dados principal. Em seguida, eu usaria soquetes TCP para se comunicar entre os dois, em vez de filas protegidas mutex. Isso pode ser uma má idéia, mas isso não é realmente importante - o que está me confundindo éeu teria que implementar as mesmas funções necessárias para garantir a segurança do segmento OpenSSL nesta segunda abordagem ou não?

Meu palpite é que eu não teria que e eles poderiam ser tratados como independentes (na verdade, certamente deve ser como tantos aplicativos usam OpenSSL), mas qual é a razão para isso?O que é diferente entre múltiplosaplicações usando o código da biblioteca compartilhada e váriostópicos compartilhando o mesmo código? Eu tenho escrito aplicativos multithread com sucesso há alguns anos e me preocupa não poder responder a essa pergunta.

questionAnswers(2)

yourAnswerToTheQuestion