mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Fix crash when quiting. v6.0.151 (#4157)
1. Remove the srs_global_dispose, which causes the crash when still publishing when quit. 2. Always call _srs_thread_pool->initialize for single thread. 3. Support `--signal-api` to send signal by HTTP API, because CLion eliminate the signals. --- Co-authored-by: Jacob Su <suzp1984@gmail.com>
This commit is contained in:
parent
b05f7b4452
commit
da5683e478
10 changed files with 87 additions and 160 deletions
|
@ -463,17 +463,17 @@ srs_error_t run_directly_or_daemon()
|
|||
srs_error_t run_hybrid_server(void* arg);
|
||||
srs_error_t run_in_thread_pool()
|
||||
{
|
||||
#ifdef SRS_SINGLE_THREAD
|
||||
srs_trace("Run in single thread mode");
|
||||
return run_hybrid_server(NULL);
|
||||
#else
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
// Initialize the thread pool.
|
||||
// Initialize the thread pool, even if we run in single thread mode.
|
||||
if ((err = _srs_thread_pool->initialize()) != srs_success) {
|
||||
return srs_error_wrap(err, "init thread pool");
|
||||
}
|
||||
|
||||
#ifdef SRS_SINGLE_THREAD
|
||||
srs_trace("Run in single thread mode");
|
||||
return run_hybrid_server(NULL);
|
||||
#else
|
||||
// Start the hybrid service worker thread, for RTMP and RTC server, etc.
|
||||
if ((err = _srs_thread_pool->execute("hybrid", run_hybrid_server, (void*)NULL)) != srs_success) {
|
||||
return srs_error_wrap(err, "start hybrid server thread");
|
||||
|
@ -525,10 +525,6 @@ srs_error_t run_hybrid_server(void* /*arg*/)
|
|||
// After all done, stop and cleanup.
|
||||
_srs_hybrid->stop();
|
||||
|
||||
// Dispose all global objects, note that we should do this in the hybrid thread, because it may
|
||||
// depend on the ST when disposing.
|
||||
srs_global_dispose();
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue