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) 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();

View file

@ -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();