mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
cleanup connections when terminate server.
This commit is contained in:
parent
573495a19f
commit
d7e5df2578
6 changed files with 48 additions and 31 deletions
|
@ -514,17 +514,7 @@ void SrsServer::destroy()
|
|||
{
|
||||
srs_warn("start destroy server");
|
||||
|
||||
_srs_config->unsubscribe(this);
|
||||
|
||||
close_listeners(SrsListenerRtmpStream);
|
||||
close_listeners(SrsListenerHttpApi);
|
||||
close_listeners(SrsListenerHttpStream);
|
||||
|
||||
#ifdef SRS_AUTO_INGEST
|
||||
ingester->dispose();
|
||||
#endif
|
||||
|
||||
SrsSource::dispose_all();
|
||||
dispose();
|
||||
|
||||
#ifdef SRS_AUTO_HTTP_API
|
||||
srs_freep(http_api_mux);
|
||||
|
@ -550,32 +540,35 @@ void SrsServer::destroy()
|
|||
srs_freep(signal_manager);
|
||||
|
||||
srs_freep(handler);
|
||||
|
||||
// @remark never destroy the connections,
|
||||
// for it's still alive.
|
||||
|
||||
// @remark never destroy the source,
|
||||
// when we free all sources, the fmle publish may retry
|
||||
// and segment fault.
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
srs_memory_report();
|
||||
#endif
|
||||
}
|
||||
|
||||
void SrsServer::dispose()
|
||||
{
|
||||
_srs_config->unsubscribe(this);
|
||||
|
||||
// prevent fresh clients.
|
||||
close_listeners(SrsListenerRtmpStream);
|
||||
close_listeners(SrsListenerHttpApi);
|
||||
close_listeners(SrsListenerHttpStream);
|
||||
close_listeners(SrsListenerMpegTsOverUdp);
|
||||
close_listeners(SrsListenerRtsp);
|
||||
close_listeners(SrsListenerFlv);
|
||||
|
||||
#ifdef SRS_AUTO_INGEST
|
||||
ingester->dispose();
|
||||
srs_trace("gracefully dispose ingesters");
|
||||
#endif
|
||||
|
||||
SrsSource::dispose_all();
|
||||
srs_trace("gracefully dispose sources");
|
||||
|
||||
srs_trace("terminate server");
|
||||
while (!conns.empty()) {
|
||||
std::vector<SrsConnection*>::iterator it;
|
||||
for (it = conns.begin(); it != conns.end(); ++it) {
|
||||
SrsConnection* conn = *it;
|
||||
conn->dispose();
|
||||
}
|
||||
|
||||
st_usleep(100 * 1000);
|
||||
}
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
srs_memory_report();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue