From 98c70a1b12e97d650f9d91184f11db2285cb464e Mon Sep 17 00:00:00 2001 From: denny Date: Fri, 11 Dec 2015 21:33:20 -0500 Subject: [PATCH] Resolved issue with wave recorders not shutting down correctly, causing errors with max file handles is exceeded. --- src/record/RecorderManager.java | 4 ++-- src/record/wave/RealBufferWaveRecorder.java | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/record/RecorderManager.java b/src/record/RecorderManager.java index e247036b..b9941926 100644 --- a/src/record/RecorderManager.java +++ b/src/record/RecorderManager.java @@ -72,8 +72,8 @@ public class RecorderManager implements Listener } else if( audioPacket.getType() == AudioPacket.Type.END ) { - mRecorders.remove( identifier ); - recorder.stop(); + RealBufferWaveRecorder finished = mRecorders.remove( identifier ); + finished.stop(); } } else if( audioPacket.getType() == AudioPacket.Type.AUDIO ) diff --git a/src/record/wave/RealBufferWaveRecorder.java b/src/record/wave/RealBufferWaveRecorder.java index 5de38587..49b0f3b6 100644 --- a/src/record/wave/RealBufferWaveRecorder.java +++ b/src/record/wave/RealBufferWaveRecorder.java @@ -125,11 +125,10 @@ public class RealBufferWaveRecorder extends Module public void stop() { - if( mRunning.compareAndSet( true, false ) ) - { - /* Signal the buffer processor to end with a poison pill */ - receive( new PoisonPill() ); - } + /* Signal the buffer processor to end with a poison pill */ + receive( new PoisonPill() ); + + mRunning.set( false ); } @Override @@ -191,7 +190,6 @@ public class RealBufferWaveRecorder extends Module try { mWriter.close(); - mWriter = null; } catch( IOException io ) { @@ -200,11 +198,12 @@ public class RealBufferWaveRecorder extends Module } } - mFile = null; - mThreadPoolManager.cancel( mProcessorHandle ); + mWriter = null; + mFile = null; mProcessorHandle = null; + mThreadPoolManager = null; } else {