Fix occasional audio interface deadlock (#4450)
This commit is contained in:
@@ -37,7 +37,6 @@
|
||||
#include <QtCore/QVector>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QMutexLocker>
|
||||
|
||||
#include "AudioDevice.h"
|
||||
#include "AudioDeviceSetupWidget.h"
|
||||
@@ -108,7 +107,6 @@ private:
|
||||
|
||||
bool m_active;
|
||||
bool m_stopped;
|
||||
QMutex m_processingMutex;
|
||||
|
||||
MidiJack *m_midiClient;
|
||||
QVector<jack_port_t *> m_outputPorts;
|
||||
|
||||
@@ -145,7 +145,6 @@ private:
|
||||
int m_outBufSize;
|
||||
|
||||
bool m_stopped;
|
||||
QSemaphore m_stopSemaphore;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -109,6 +109,8 @@ private:
|
||||
fpp_t m_outBufFramesTotal;
|
||||
fpp_t m_outBufFrameIndex;
|
||||
|
||||
bool m_stopped;
|
||||
|
||||
int m_disconnectErr;
|
||||
void onBackendDisconnect(int err);
|
||||
|
||||
|
||||
@@ -66,6 +66,12 @@ public:
|
||||
return( element );
|
||||
}
|
||||
|
||||
void waitUntilRead()
|
||||
{
|
||||
m_writer_sem.acquire( m_size );
|
||||
m_writer_sem.release( m_size );
|
||||
}
|
||||
|
||||
bool available()
|
||||
{
|
||||
return( m_reader_sem.available() );
|
||||
|
||||
Reference in New Issue
Block a user