更新ZLToolKit(解决可能丢失事件的问题)

This commit is contained in:
xiongziliang 2019-01-18 10:16:36 +08:00
parent 059c118e95
commit 4ab1d4ca44
8 changed files with 22 additions and 19 deletions

@ -1 +1 @@
Subproject commit 6d7e1bfafa98837f16c0645d8ea89e51e3f68fea Subproject commit 2814157d5998ea627a8a42d6e19ad5c4a2b767fc

View File

@ -41,7 +41,8 @@ using namespace mediakit;
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int) { EventPollerPool::Instance().shutdown(); }); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
//设置日志 //设置日志
Logger::Instance().add(std::make_shared<ConsoleChannel>()); Logger::Instance().add(std::make_shared<ConsoleChannel>());
@ -52,7 +53,6 @@ int main(int argc, char *argv[]) {
<< "例如你想每隔50毫秒启动共计100个播放器tcp方式播放rtsp://127.0.0.1/live/0 )可以输入以下命令:\r\n" << "例如你想每隔50毫秒启动共计100个播放器tcp方式播放rtsp://127.0.0.1/live/0 )可以输入以下命令:\r\n"
<< "./test_benchmark 100 50 rtsp://127.0.0.1/live/0 0\r\n" << "./test_benchmark 100 50 rtsp://127.0.0.1/live/0 0\r\n"
<< endl; << endl;
Logger::Destory();
return 0; return 0;
} }
@ -81,8 +81,7 @@ int main(int argc, char *argv[]) {
return true; return true;
}); });
EventPollerPool::Instance().wait(); sem.wait();
AsyncTaskThread::Instance().CancelTask(0);
return 0; return 0;
} }

View File

@ -102,7 +102,9 @@ static onceToken s_token([](){
int main(int argc,char *argv[]){ int main(int argc,char *argv[]){
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int){EventPollerPool::Instance().shutdown();}); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
//设置日志 //设置日志
Logger::Instance().add(std::make_shared<ConsoleChannel>()); Logger::Instance().add(std::make_shared<ConsoleChannel>());
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>()); Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
@ -133,7 +135,7 @@ int main(int argc,char *argv[]){
InfoL << "你可以在浏览器输入:http://127.0.0.1/api/my_api?key0=val0&key1=参数1" << endl; InfoL << "你可以在浏览器输入:http://127.0.0.1/api/my_api?key0=val0&key1=参数1" << endl;
EventPollerPool::Instance().wait(); sem.wait();
return 0; return 0;
} }

View File

@ -41,7 +41,9 @@ using namespace mediakit;
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int) { EventPollerPool::Instance().shutdown(); }); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
//设置日志 //设置日志
Logger::Instance().add(std::make_shared<ConsoleChannel>()); Logger::Instance().add(std::make_shared<ConsoleChannel>());
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>()); Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
@ -182,8 +184,7 @@ int main(int argc, char *argv[]) {
} }
}); });
//事件轮询 sem.wait();
EventPollerPool::Instance().wait();
return 0; return 0;
} }

View File

@ -50,7 +50,6 @@ int main(int argc, char *argv[]) {
ErrorL << "\r\n测试方法:./test_player rtxp_url rtp_type\r\n" ErrorL << "\r\n测试方法:./test_player rtxp_url rtp_type\r\n"
<< "例如:./test_player rtsp://admin:123456@127.0.0.1/live/0 0\r\n" << "例如:./test_player rtsp://admin:123456@127.0.0.1/live/0 0\r\n"
<< endl; << endl;
Logger::Destory();
return 0; return 0;
} }

View File

@ -83,7 +83,8 @@ void rePushDelay(const string &app, const string &stream, const string &url) {
//这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了 //这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了
int domain(const string &playUrl, const string &pushUrl) { int domain(const string &playUrl, const string &pushUrl) {
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int) { EventPollerPool::Instance().shutdown(); }); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
//设置日志 //设置日志
Logger::Instance().add(std::make_shared<ConsoleChannel>()); Logger::Instance().add(std::make_shared<ConsoleChannel>());
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>()); Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
@ -101,8 +102,7 @@ int domain(const string &playUrl, const string &pushUrl) {
createPusher(app, stream, pushUrl); createPusher(app, stream, pushUrl);
} }
}); });
//事件轮询 sem.wait();
EventPollerPool::Instance().wait();
return 0; return 0;
} }

View File

@ -92,7 +92,9 @@ void rePushDelay(const string &app,const string &stream,const string &url){
//这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了 //这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了
int domain(const string & filePath,const string & pushUrl){ int domain(const string & filePath,const string & pushUrl){
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int){EventPollerPool::Instance().shutdown();}); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
//设置日志 //设置日志
Logger::Instance().add(std::make_shared<ConsoleChannel>()); Logger::Instance().add(std::make_shared<ConsoleChannel>());
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>()); Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
@ -103,8 +105,7 @@ int domain(const string & filePath,const string & pushUrl){
//限制app为record是为了防止服务器上的文件被肆意访问 //限制app为record是为了防止服务器上的文件被肆意访问
createPusher(appName,filePath,pushUrl); createPusher(appName,filePath,pushUrl);
//开始事件轮询 sem.wait();
EventPollerPool::Instance().wait();
return 0; return 0;
} }

View File

@ -229,7 +229,8 @@ static onceToken s_token([](){
int main(int argc,char *argv[]) { int main(int argc,char *argv[]) {
//设置退出信号处理函数 //设置退出信号处理函数
signal(SIGINT, [](int) { EventPollerPool::Instance().shutdown(); }); static semaphore sem;
signal(SIGINT, [](int) { sem.post(); });// 设置退出信号
signal(SIGHUP, [](int) { loadIniConfig(); }); signal(SIGHUP, [](int) { loadIniConfig(); });
//设置日志 //设置日志
@ -354,7 +355,7 @@ int main(int argc,char *argv[]) {
} }
}); });
EventPollerPool::Instance().wait(); sem.wait();
return 0; return 0;
} }