2013-03-05 65 views
0

我短耳上检查文件,SSL部分要精确碰上ssl::stream
和线程安全声明:
Shared objects: Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
现在我明白了OpenSSL的BIO不alow并发SSL_ReadSSL_Write操作,但无法找到哪些函数可用于strand短耳SSL流线程安全的

  • 由于使用strand.post(async_read)/strand.post(async_write)不应该(在我的知识)确保并发SSL_ReadSSL_Write不会发生,因为即使这些异步功能将不执行一次,他们只是立即返回,因此不要读取任何数据。
  • 关于处理函数还使用strand对我来说也不是什么好东西,因为当这些处理程序被调用时,数据已经被读取并且被拷贝到用户定义的缓冲区中。

谢谢经过google搜索,我发现我一直在找你

+0

为什么这个问题得到了downvote? – Pinker 2013-03-06 08:19:46

+0

,因为就像任何地方一样,在stackoverflow上有愚蠢的人。你的问题是有效的,并感谢后续答案。 – 2015-03-10 19:28:02

回答

1

确定。 解决方案在示例HTTP Server 3中,它在完成处理程序上使用链。 即使我仍然不明白它的作用,它确实会阻止并发SSL操作,因此不会导致我的程序崩溃。