我正在将异步hiredis与libev一起使用。mLoopThread 在这里用于 ev 循环线程,基本上 mLoopThread 正在调用 ev_loop()。当主线程试图破坏异步hiredis实例时,它调用ev_unloop试图让ev_loop()退出。代码如下所示。但这不起作用。回溯显示 mLoopThread 在 epoll_wait() 中挂起,主线程在 mLoopThread->join() 中挂起。如何退出ev循环线程?谢谢。
~async_redis() {
ev_unloop(mLoop, EVBREAK_ALL);
if (mLoopThread && mLoopThread->joinable()) {
mLoopThread->join();
}
}