From 0a1f18f323fe299fc17357371ec1d4ec6c4e1529 Mon Sep 17 00:00:00 2001 From: sletz Date: Fri, 13 Jun 2008 09:15:39 +0000 Subject: [PATCH] Correct JackPosixThread::ThreadHandler termination, do not set buffer size if same value is used. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2519 0c269be4-1314-0410-8aa9-9f06e86f4224 --- ChangeLog | 4 ++++ common/JackPosixThread.cpp | 3 ++- common/JackServer.cpp | 5 +++++ common/JackThreadedDriver.cpp | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 20268612..49de5f51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,10 @@ Romain Moret Jackdmp changes log --------------------------- +2008-06-13 Stephane Letz + + * Correct JackPosixThread::ThreadHandler termination, do not set buffer size if same value is used. + 2008-06-12 Stephane Letz * Another Tim Blechmann patch to remove unnecessary virtual methods. diff --git a/common/JackPosixThread.cpp b/common/JackPosixThread.cpp index 59584720..3a58bb02 100644 --- a/common/JackPosixThread.cpp +++ b/common/JackPosixThread.cpp @@ -59,7 +59,8 @@ void* JackPosixThread::ThreadHandler(void* arg) } jack_log("ThreadHandler: exit"); - return 0; + pthread_exit(0); + return 0; // never reached } int JackPosixThread::Start() diff --git a/common/JackServer.cpp b/common/JackServer.cpp index 27c539c7..2cc30e80 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -189,6 +189,11 @@ int JackServer::SetBufferSize(jack_nframes_t buffer_size) jack_log("JackServer::SetBufferSize nframes = %ld", buffer_size); jack_nframes_t current_buffer_size = fEngineControl->fBufferSize; + if (current_buffer_size == buffer_size) { + jack_log("SetBufferSize: requirement for new buffer size equals current value"); + return 0; + } + if (fAudioDriver->Stop() != 0) { jack_error("Cannot stop audio driver"); return -1; diff --git a/common/JackThreadedDriver.cpp b/common/JackThreadedDriver.cpp index e8f732d8..506a550f 100644 --- a/common/JackThreadedDriver.cpp +++ b/common/JackThreadedDriver.cpp @@ -54,7 +54,7 @@ int JackThreadedDriver::Start() jack_error("Cannot start driver"); return -1; } - if (fThread.Start() < 0) { + if (fThread.StartSync() < 0) { jack_error("Cannot start thread"); return -1; }