如何在c++中停止使用TNonblockingServer
How to stop thrift TNonblockingServer in C++?
本文关键字:TNonblockingServer c++ 更新时间:2023-10-16
我从一个线程启动TNonblockingServer:
void *start_server(void *) {
server->serve();
return NULL;
}
pthread_create(&daemon_thread, NULL, start_server, NULL);
,并从主线程调用server->stop()
,然后尝试使用pthread_join
等待后台线程优雅退出。然而主线程挂起在pthread_join
调用。
我怎样才能优雅地关闭节俭服务器?
很抱歉回复晚了
您只需要停止底层libevent
例如:
tv.tv_usec = 500000;
tv.tv_sec = 0;
event_base_loopexit(myTNonBlockSvr->getEventBase(), &tv);
AFAICT TNonblockingServer::stop()
未实现。TNonblockingServer
析构函数会尝试一个干净的关闭,所以你可能能够删除服务器并关闭服务器。
这是一个完整的hack,理想情况下stop()
将被正确实现。
相关文章:
- 没有找到相关文章