1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

For #906, #902, use coroutine for reusable2 thread

This commit is contained in:
winlin 2017-05-29 20:49:29 +08:00
parent ea9a5f26d9
commit 6993ac226f
12 changed files with 115 additions and 228 deletions

View file

@ -114,13 +114,13 @@ public:
/**
* edge used to ingest stream from origin.
*/
class SrsEdgeIngester : public ISrsReusableThread2Handler
class SrsEdgeIngester : public ISrsCoroutineHandler
{
private:
SrsSource* source;
SrsPlayEdge* edge;
SrsRequest* req;
SrsReusableThread2* pthread;
SrsCoroutine* trd;
SrsLbRoundRobin* lb;
SrsEdgeUpstream* upstream;
// for RTMP 302 redirect.
@ -136,6 +136,8 @@ public:
// interface ISrsReusableThread2Handler
public:
virtual int cycle();
private:
virtual int do_cycle();
private:
virtual int ingest();
virtual int process_publish_message(SrsCommonMessage* msg);
@ -144,13 +146,13 @@ private:
/**
* edge used to forward stream to origin.
*/
class SrsEdgeForwarder : public ISrsReusableThread2Handler
class SrsEdgeForwarder : public ISrsCoroutineHandler
{
private:
SrsSource* source;
SrsPublishEdge* edge;
SrsRequest* req;
SrsReusableThread2* pthread;
SrsCoroutine* trd;
SrsSimpleRtmpClient* sdk;
SrsLbRoundRobin* lb;
/**
@ -176,6 +178,8 @@ public:
// interface ISrsReusableThread2Handler
public:
virtual int cycle();
private:
virtual int do_cycle();
public:
virtual int proxy(SrsCommonMessage* msg);
};