正在显示
3 个修改的文件
包含
53 行增加
和
2 行删除
| @@ -64,6 +64,47 @@ int sleep_test() | @@ -64,6 +64,47 @@ int sleep_test() | ||
| 64 | return 0; | 64 | return 0; |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | +void* sleep2_func0(void* arg) | ||
| 68 | +{ | ||
| 69 | + int sleep_ms = 100; | ||
| 70 | + st_utime_t start = st_utime(); | ||
| 71 | + st_usleep(sleep_ms * 1000); | ||
| 72 | + st_utime_t end = st_utime(); | ||
| 73 | + | ||
| 74 | + srs_trace("sleep ok, sleep=%dus, deviation=%dus", | ||
| 75 | + (int)(sleep_ms * 1000), (int)(end - start - sleep_ms * 1000)); | ||
| 76 | + | ||
| 77 | + return NULL; | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +void* sleep2_func1(void* arg) | ||
| 81 | +{ | ||
| 82 | + int sleep_ms = 250; | ||
| 83 | + st_utime_t start = st_utime(); | ||
| 84 | + st_usleep(sleep_ms * 1000); | ||
| 85 | + st_utime_t end = st_utime(); | ||
| 86 | + | ||
| 87 | + srs_trace("sleep ok, sleep=%dus, deviation=%dus", | ||
| 88 | + (int)(sleep_ms * 1000), (int)(end - start - sleep_ms * 1000)); | ||
| 89 | + | ||
| 90 | + return NULL; | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +int sleep2_test() | ||
| 94 | +{ | ||
| 95 | + srs_trace("==================================================="); | ||
| 96 | + srs_trace("sleep2 test: start"); | ||
| 97 | + | ||
| 98 | + st_thread_t trd0 = st_thread_create(sleep2_func0, NULL, 1, 0); | ||
| 99 | + st_thread_t trd1 = st_thread_create(sleep2_func1, NULL, 1, 0); | ||
| 100 | + st_thread_join(trd0, NULL); | ||
| 101 | + st_thread_join(trd1, NULL); | ||
| 102 | + | ||
| 103 | + srs_trace("sleep test: end"); | ||
| 104 | + exit(0); | ||
| 105 | + return 0; | ||
| 106 | +} | ||
| 107 | + | ||
| 67 | st_mutex_t sleep_work_cond = NULL; | 108 | st_mutex_t sleep_work_cond = NULL; |
| 68 | void* sleep_deviation_func(void* arg) | 109 | void* sleep_deviation_func(void* arg) |
| 69 | { | 110 | { |
| @@ -400,8 +441,8 @@ int main(int argc, char** argv) | @@ -400,8 +441,8 @@ int main(int argc, char** argv) | ||
| 400 | return -1; | 441 | return -1; |
| 401 | } | 442 | } |
| 402 | 443 | ||
| 403 | - if (huge_stack_test() < 0) { | ||
| 404 | - srs_trace("huge_stack_test failed"); | 444 | + if (sleep2_test() < 0) { |
| 445 | + srs_trace("sleep2_test failed"); | ||
| 405 | return -1; | 446 | return -1; |
| 406 | } | 447 | } |
| 407 | 448 | ||
| @@ -415,6 +456,11 @@ int main(int argc, char** argv) | @@ -415,6 +456,11 @@ int main(int argc, char** argv) | ||
| 415 | return -1; | 456 | return -1; |
| 416 | } | 457 | } |
| 417 | 458 | ||
| 459 | + if (huge_stack_test() < 0) { | ||
| 460 | + srs_trace("huge_stack_test failed"); | ||
| 461 | + return -1; | ||
| 462 | + } | ||
| 463 | + | ||
| 418 | if (thread_test() < 0) { | 464 | if (thread_test() < 0) { |
| 419 | srs_trace("thread_test failed"); | 465 | srs_trace("thread_test failed"); |
| 420 | return -1; | 466 | return -1; |
| @@ -534,6 +534,10 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -534,6 +534,10 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 534 | // it's ok, do nothing. | 534 | // it's ok, do nothing. |
| 535 | ret = ERROR_SUCCESS; | 535 | ret = ERROR_SUCCESS; |
| 536 | srs_verbose("recv timeout, ignore. ret=%d", ret); | 536 | srs_verbose("recv timeout, ignore. ret=%d", ret); |
| 537 | + | ||
| 538 | + // TODO: FIXME: the timeout may caused some dead loop. | ||
| 539 | + // @see: https://github.com/winlinvip/simple-rtmp-server/issues/161 | ||
| 540 | + st_usleep(0); | ||
| 537 | } else if (ret != ERROR_SUCCESS) { | 541 | } else if (ret != ERROR_SUCCESS) { |
| 538 | if (!srs_is_client_gracefully_close(ret)) { | 542 | if (!srs_is_client_gracefully_close(ret)) { |
| 539 | srs_error("recv client control message failed. ret=%d", ret); | 543 | srs_error("recv client control message failed. ret=%d", ret); |
| @@ -48,6 +48,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -48,6 +48,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 48 | // signal defines. | 48 | // signal defines. |
| 49 | #define SIGNAL_RELOAD SIGHUP | 49 | #define SIGNAL_RELOAD SIGHUP |
| 50 | 50 | ||
| 51 | +// nginx also set to 512 | ||
| 51 | #define SERVER_LISTEN_BACKLOG 512 | 52 | #define SERVER_LISTEN_BACKLOG 512 |
| 52 | 53 | ||
| 53 | // system interval in ms, | 54 | // system interval in ms, |
-
请 注册 或 登录 后发表评论