diff --git a/ChangeLog b/ChangeLog index 98701816..cefa475c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -39,6 +39,7 @@ John Emmas 2011-11-24 Stephane Letz * Dynamic port management in JACK/CoreMidi bridge. + * Correct jack_client_create_thread (when realtime in on). 2011-11-21 Stephane Letz diff --git a/common/JackAPI.cpp b/common/JackAPI.cpp index 7f0f56d2..709be6c6 100644 --- a/common/JackAPI.cpp +++ b/common/JackAPI.cpp @@ -1776,7 +1776,14 @@ LIB_EXPORT int jack_client_create_thread(jack_client_t* client, #ifdef __CLIENTDEBUG__ JackGlobals::CheckContext("jack_client_create_thread"); #endif - return JackThread::StartImp(thread, priority, realtime, routine, arg); + JackEngineControl* control = GetEngineControl(); + int res = JackThread::StartImp(thread, priority, realtime, routine, arg); + return (res == 0) + ? ((realtime ? JackThread::AcquireRealTimeImp(*thread, priority, + GetEngineControl()->fPeriod, + GetEngineControl()->fComputation, + GetEngineControl()->fConstraint) : res)) + : res; } LIB_EXPORT int jack_drop_real_time_scheduling(jack_native_thread_t thread)