Fixed deadlock

This commit is contained in:
Grishka 2017-04-28 15:42:48 +03:00
parent 697e250727
commit 64276ceb96

View File

@ -167,10 +167,6 @@ void tgvoip::OpusDecoder::RunThread(){
size_t nextLen=0; size_t nextLen=0;
while(running){ while(running){
//LOGV("after wait, running=%d", running); //LOGV("after wait, running=%d", running);
if(!running){
LOGI("==== decoder exiting ====");
return;
}
//LOGD("Will get %d packets", packetsNeeded); //LOGD("Will get %d packets", packetsNeeded);
//lastDecodedLen=0; //lastDecodedLen=0;
memcpy(buffer, nextBuffer, nextLen); memcpy(buffer, nextBuffer, nextLen);
@ -200,6 +196,10 @@ void tgvoip::OpusDecoder::RunThread(){
//LOGV("After decode, size=%d", size); //LOGV("After decode, size=%d", size);
for(i=0;i<packetsPerFrame;i++){ for(i=0;i<packetsPerFrame;i++){
semaphore.Acquire(); semaphore.Acquire();
if(!running){
LOGI("==== decoder exiting ====");
return;
}
unsigned char *buf=bufferPool->Get(); unsigned char *buf=bufferPool->Get();
if(buf){ if(buf){
if(size>0){ if(size>0){