mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
for bug #235, refine the queue recv thread.
This commit is contained in:
parent
0b631ee80d
commit
0e7836868c
2 changed files with 17 additions and 3 deletions
|
@ -114,13 +114,13 @@ void SrsRecvThread::on_thread_stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms)
|
SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms)
|
||||||
: SrsRecvThread(this, rtmp_sdk, timeout_ms)
|
: trd(this, rtmp_sdk, timeout_ms)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsQueueRecvThread::~SrsQueueRecvThread()
|
SrsQueueRecvThread::~SrsQueueRecvThread()
|
||||||
{
|
{
|
||||||
stop();
|
trd.stop();
|
||||||
|
|
||||||
// clear all messages.
|
// clear all messages.
|
||||||
std::vector<SrsMessage*>::iterator it;
|
std::vector<SrsMessage*>::iterator it;
|
||||||
|
@ -131,6 +131,16 @@ SrsQueueRecvThread::~SrsQueueRecvThread()
|
||||||
queue.clear();
|
queue.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SrsQueueRecvThread::start()
|
||||||
|
{
|
||||||
|
return trd.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SrsQueueRecvThread::stop()
|
||||||
|
{
|
||||||
|
trd.stop();
|
||||||
|
}
|
||||||
|
|
||||||
bool SrsQueueRecvThread::empty()
|
bool SrsQueueRecvThread::empty()
|
||||||
{
|
{
|
||||||
return queue.empty();
|
return queue.empty();
|
||||||
|
|
|
@ -87,13 +87,17 @@ public:
|
||||||
* @see: SrsRtmpConn::playing
|
* @see: SrsRtmpConn::playing
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
|
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
|
||||||
*/
|
*/
|
||||||
class SrsQueueRecvThread : virtual public ISrsMessageHandler, virtual public SrsRecvThread
|
class SrsQueueRecvThread : virtual public ISrsMessageHandler
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
std::vector<SrsMessage*> queue;
|
std::vector<SrsMessage*> queue;
|
||||||
|
SrsRecvThread trd;
|
||||||
public:
|
public:
|
||||||
SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms);
|
SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms);
|
||||||
virtual ~SrsQueueRecvThread();
|
virtual ~SrsQueueRecvThread();
|
||||||
|
public:
|
||||||
|
virtual int start();
|
||||||
|
virtual void stop();
|
||||||
public:
|
public:
|
||||||
virtual bool empty();
|
virtual bool empty();
|
||||||
virtual int size();
|
virtual int size();
|
||||||
|
|
Loading…
Reference in a new issue