1
0
Fork 0
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:
winlin 2014-12-01 22:53:03 +08:00
parent 0b631ee80d
commit 0e7836868c
2 changed files with 17 additions and 3 deletions

View file

@ -114,13 +114,13 @@ void SrsRecvThread::on_thread_stop()
}
SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms)
: SrsRecvThread(this, rtmp_sdk, timeout_ms)
: trd(this, rtmp_sdk, timeout_ms)
{
}
SrsQueueRecvThread::~SrsQueueRecvThread()
{
stop();
trd.stop();
// clear all messages.
std::vector<SrsMessage*>::iterator it;
@ -131,6 +131,16 @@ SrsQueueRecvThread::~SrsQueueRecvThread()
queue.clear();
}
int SrsQueueRecvThread::start()
{
return trd.start();
}
void SrsQueueRecvThread::stop()
{
trd.stop();
}
bool SrsQueueRecvThread::empty()
{
return queue.empty();

View file

@ -87,13 +87,17 @@ public:
* @see: SrsRtmpConn::playing
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
*/
class SrsQueueRecvThread : virtual public ISrsMessageHandler, virtual public SrsRecvThread
class SrsQueueRecvThread : virtual public ISrsMessageHandler
{
private:
std::vector<SrsMessage*> queue;
SrsRecvThread trd;
public:
SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms);
virtual ~SrsQueueRecvThread();
public:
virtual int start();
virtual void stop();
public:
virtual bool empty();
virtual int size();