openSSL读/写线程安全

时间:2019-04-08 17:47:58

标签: c linux thread-safety libssl

我们在多线程环境中使用1.0.2hlibssl.so进行服务。

第一个线程运行阻止读取,另一个线程进行定期写入。

它有时会在SSL_write函数的SSL_write内部某个地方崩溃。代码调用SSL看起来绝对合法,它与在调用函数堆栈上分配的缓冲区一起运行。另外,撞车非常罕见,这表明可能是比赛条件。

我发现以下article表示,在两个线程中使用单个CRYPTO_set_locking_callback对象,尽管设置了mutex,但每个线程用于读取和写入并不安全。那是对的吗?如果是,那么建议的解决方法是什么?如果我在阻塞读取中阻塞 import React, { Component } from 'react' import ReactDOM from 'react-dom' import Header from './Includes/Header' import Footer from './Includes/Footer' import Index from './Index' import Routings from './Includes/Routings' export default class Main extends Component { render() { return ( <div> <Header/> <Index/> <Routings/> <Footer/> </div> ); } } if (document.getElementById('app')) { ReactDOM.render(<Main />, document.getElementById('app')); } ,将无法写入。

1 个答案:

答案 0 :(得分:0)

我们建议修改超时阈值。

跟踪和调试竞争条件很困难,最终您将不得不更改超时和/或缓冲区参数。现在最好研究一下这些参数。