Resolves multi-threading issue in buffer assembler where sample listener is nullified while buffer processing is still in process. (#1005)

Co-authored-by: Denny <denny@denny-desktop>
This commit is contained in:
Denny Sheirer
2020-12-01 04:06:03 -05:00
committed by GitHub
parent 67702096d7
commit f0d9ef99ea
2 changed files with 4 additions and 3 deletions

View File

@@ -149,12 +149,14 @@ public class ReusableComplexBufferAssembler
*/
public void flush()
{
if(mListener != null && mBuffer.position() > 0)
Listener<ReusableComplexBuffer> listener = mListener;
if(listener != null && mBuffer.position() > 0)
{
mBuffer.rewind();
ReusableComplexBuffer reusableComplexBuffer = mReusableComplexBufferQueue.getBuffer(mBufferSize);
reusableComplexBuffer.reloadFrom(mBuffer, mCurrentBufferTimestamp);
mListener.receive(reusableComplexBuffer);
listener.receive(reusableComplexBuffer);
}
mBuffer.rewind();