Messages shouldn't send done until after completion messages have fired

nix
Owen Green 5 years ago
parent 8d9419cb9e
commit 4654d77707

@ -173,6 +173,12 @@ struct FluidSCMessaging{
MessageData::Descriptor::template forEachArg<typename BufferT::type, MessageData::Descriptor::template forEachArg<typename BufferT::type,
impl::AssignBuffer>(m->args, impl::AssignBuffer>(m->args,
world); world);
return true;
},
nullptr, // NRT Thread: No-op
[](World* world, void* data) // RT thread: clean up
{
MessageData* m = static_cast<MessageData*>(data);
if(m->result.status() != Result::Status::kError) if(m->result.status() != Result::Status::kError)
messageOutput(m->name, m->id, m->result, world); messageOutput(m->name, m->id, m->result, world);
@ -181,12 +187,7 @@ struct FluidSCMessaging{
auto ft = getInterfaceTable(); auto ft = getInterfaceTable();
ft->fSendNodeReply(ft->fGetNode(world,0),-1, m->name.c_str(),0, nullptr); ft->fSendNodeReply(ft->fGetNode(world,0),-1, m->name.c_str(),0, nullptr);
} }
return true;
},
nullptr, // NRT Thread: No-op
[](World* /*w*/, void* data) // RT thread: clean up
{
MessageData* m = static_cast<MessageData*>(data);
delete m; delete m;
}, },
static_cast<int>(completionMsgSize), completionMsgData); static_cast<int>(completionMsgSize), completionMsgData);

Loading…
Cancel
Save