1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00

fast stop server.

This commit is contained in:
winlin 2015-12-11 10:30:13 +08:00
parent 3ab5892863
commit 1e4c8f8bf3
2 changed files with 8 additions and 14 deletions

View file

@ -270,7 +270,9 @@ int SrsTcpListener::cycle()
if(client_stfd == NULL){ if(client_stfd == NULL){
// ignore error. // ignore error.
srs_error("ignore accept thread stoppped for accept client error"); if (errno != EINTR) {
srs_error("ignore accept thread stoppped for accept client error");
}
return ret; return ret;
} }
srs_verbose("get a client. fd=%d", st_netfd_fileno(client_stfd)); srs_verbose("get a client. fd=%d", st_netfd_fileno(client_stfd));

View file

@ -566,25 +566,16 @@ void SrsServer::dispose()
close_listeners(SrsListenerRtsp); close_listeners(SrsListenerRtsp);
close_listeners(SrsListenerFlv); close_listeners(SrsListenerFlv);
#ifdef SRS_AUTO_INGEST // @remark don't dispose ingesters, for too slow.
ingester->dispose();
#endif
#ifdef SRS_AUTO_KAFKA #ifdef SRS_AUTO_KAFKA
kafka->stop(); kafka->stop();
#endif #endif
// dispose the source for hls and dvr.
SrsSource::dispose_all(); SrsSource::dispose_all();
while (!conns.empty()) { // @remark don't dispose all connections, for too slow.
std::vector<SrsConnection*>::iterator it;
for (it = conns.begin(); it != conns.end(); ++it) {
SrsConnection* conn = *it;
conn->dispose();
}
st_usleep(100 * 1000);
}
#ifdef SRS_AUTO_MEM_WATCH #ifdef SRS_AUTO_MEM_WATCH
srs_memory_report(); srs_memory_report();
@ -907,6 +898,7 @@ int SrsServer::cycle()
st_usleep(3 * 1000 * 1000); st_usleep(3 * 1000 * 1000);
srs_warn("system quit"); srs_warn("system quit");
#else #else
// normally quit with neccessary cleanup by dispose().
srs_warn("main cycle terminated, system quit normally."); srs_warn("main cycle terminated, system quit normally.");
dispose(); dispose();
srs_trace("srs terminated"); srs_trace("srs terminated");