From 246f9e2b1fcdb304e50961ab632bf2c594e3329a Mon Sep 17 00:00:00 2001 From: Owen Green Date: Mon, 11 Jan 2021 17:00:45 +0000 Subject: [PATCH 1/3] Ensure that threaded jobs still have a completion message to send (broken by 6065996) --- include/wrapper/NonRealtime.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/wrapper/NonRealtime.hpp b/include/wrapper/NonRealtime.hpp index 254f19b..db77f09 100644 --- a/include/wrapper/NonRealtime.hpp +++ b/include/wrapper/NonRealtime.hpp @@ -345,6 +345,7 @@ namespace impl { void* space = ft->fRTAlloc(world,sizeof(CommandAsyncComplete)); CommandAsyncComplete* cmd = new (space) CommandAsyncComplete(world, id,c->mReplyAddress); runAsyncCommand(world, cmd, c->mReplyAddress, c->mCompletionMsgSize, c->mCompletionMessage); + if(c->mCompletionMsgSize) ft->fRTFree(world,c->mCompletionMessage); }; auto tidyup = [](FifoMsg* msg) @@ -622,7 +623,10 @@ namespace impl { { if(!cmd->synchronous()) { - cmd->addCompletionMessage(completionMsgSize,completionMsgData); + + auto msgcopy = (char*)getInterfaceTable()->fRTAlloc(world,completionMsgSize); + memcpy(msgcopy, completionMsgData, completionMsgSize); + cmd->addCompletionMessage(completionMsgSize,msgcopy); return runAsyncCommand(world, cmd, replyAddr, 0, nullptr); } else return runAsyncCommand(world, cmd, replyAddr, completionMsgSize, completionMsgData); @@ -633,7 +637,9 @@ namespace impl { { if(!cmd->synchronous()) { - cmd->addCompletionMessage(completionMsgSize,completionMsgData); + auto msgcopy = (char*)getInterfaceTable()->fRTAlloc(world,completionMsgSize); + memcpy(msgcopy, completionMsgData, completionMsgSize); + cmd->addCompletionMessage(completionMsgSize,msgcopy); return runAsyncCommand(world, cmd, replyAddr, 0, nullptr); } else return runAsyncCommand(world, cmd, replyAddr, completionMsgSize, completionMsgData); From be7e7d755006e5690eba328b79a5ebac80d02644 Mon Sep 17 00:00:00 2001 From: Pierre Alexandre Tremblay Date: Mon, 11 Jan 2021 18:53:05 +0000 Subject: [PATCH 2/3] help: two typos sorted --- .../HelpSource/Classes/FluidBufTransientSlice.schelp | 2 +- release-packaging/HelpSource/Classes/FluidGain.schelp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp b/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp index 7bbc53f..71926c3 100644 --- a/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp +++ b/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp @@ -109,7 +109,7 @@ c.query; }.play; ) -// with everything changed to make it much better, at the cost of computation time (only 10 seconds are processed here, again wait for the (longer) computation time to appear) +// with everything changed to make it much better, at the cost of computation time (only 5 seconds are processed here, again wait for the (longer) computation time to appear) ( Routine{ t = Main.elapsedTime; diff --git a/release-packaging/HelpSource/Classes/FluidGain.schelp b/release-packaging/HelpSource/Classes/FluidGain.schelp index 2783e26..0933940 100644 --- a/release-packaging/HelpSource/Classes/FluidGain.schelp +++ b/release-packaging/HelpSource/Classes/FluidGain.schelp @@ -32,7 +32,7 @@ Varying the gain at audio rate. CODE:: { FluidGain.ar(PinkNoise.ar(0.1), gain:LFTri.ar(1)) }.play :: -Varying the gain at comtrol rate, in beautiful stereo. +Varying the gain at control rate, in beautiful stereo. CODE:: { FluidGain.ar(SinOsc.ar([222,333],mul:0.1), gain:LFTri.kr([0.5,0.7])) }.play :: From 901725b132ac65f1291917346e71173f3b82d17e Mon Sep 17 00:00:00 2001 From: Owen Green Date: Tue, 12 Jan 2021 10:11:01 +0000 Subject: [PATCH 3/3] Provide slightly more context in error messages --- include/FluidSCWrapper.hpp | 6 +++--- include/SCBufferAdaptor.hpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index c5bbae0..878e327 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -112,17 +112,17 @@ public: case Result::Status::kWarning: { if (!w || w->mVerbosity > 0) - std::cout << "WARNING: " << r.message().c_str() << '\n'; + std::cout << "WARNING: " << getName() << " - " << r.message().c_str() << '\n'; break; } case Result::Status::kError: { - std::cout << "ERROR: " << r.message().c_str() << '\n'; + std::cout << "ERROR: " << getName() << " - " << r.message().c_str() << '\n'; break; } case Result::Status::kCancelled: { - std::cout << "Task cancelled\n" << '\n'; + std::cout << getName() << ": Task cancelled\n" << '\n'; break; } default: diff --git a/include/SCBufferAdaptor.hpp b/include/SCBufferAdaptor.hpp index 5c212b5..f3b2a24 100644 --- a/include/SCBufferAdaptor.hpp +++ b/include/SCBufferAdaptor.hpp @@ -182,7 +182,7 @@ public: if (allocResult != kSCErr_None) { r.set(Result::Status::kError); - r.addMessage("Resize on buffer ", bufnum(), " failed."); + r.addMessage("Resize on buffer ", bufnum(), " failed. (Requested ", frames, " frames, ", channels, "channels)"); } return r; }