-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Topic/nodeproxy bundling queue #4461
Topic/nodeproxy bundling queue #4461
Conversation
There is a related problem that requires a fix: #4457 |
@redFrik can you take a look if it solves the issues you've had? Thanks! |
@telephon just a reminder to label your PRs when you submit them :) |
@telephon if you mean this https://www.listarc.bham.ac.uk/lists/sc-users/msg64271.html //recompile
s.boot;
//run this multiple times. stop with cmdperiod. sounds only first time
(
Ndef(\out, {Ndef.ar(\saw)}).play;
Ndef(\saw, {VarSaw.ar([400, 400.4], 0, 0.2, 0.1.poll)});
)
//this one will sound each time
(
fork{
Ndef(\out, {Ndef.ar(\saw)}).play;
0.1.wait;
Ndef(\saw, {VarSaw.ar([400, 400.4], 0, 0.2, 0.1.poll)});
}
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems to do what's advertised. One query about the added test below.
this branch has conflicts FYI @telephon |
test: make sure that a status message has been sent
This makes sure that: a) SynthDefs have a unique name instead of a channel id b) SynthDefs are freed even when the bundle is canceled Not setting the nodeID to nil is ok, nothing substantial depends on it. For some reason, `addPrepare` needs to be replaced by a direct adding. I would have thought that either way should be OK, but `addPrepare` will cause SynthDef not found errors under load (when bundles are canceled). This may need further checking, including the server behaviour.
641b2dc
to
490ccac
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. One OTT query on the test, but happy to approve if the answer to that is no.
Thanks @redFrik I'll see what I can do about that silly problem. |
What's the status of this @telephon? Are we awaiting further changes or will that be another PR? |
@muellmusik that should be another one. It might be related, but I'm not sure. |
Okay, then any reason not to merge this? @brianlheim or @jamshark70 should we hold off for reviews from either of you? |
I think it looks ok -- after updating the unit test, did you try the unit test without the code fix? It should fail w/o code fix and pass with it. |
It's long ago, but I usually do something like that. |
var numBefore, numAfter; | ||
server.sendStatusMsg; | ||
server.sync; | ||
numBefore = server.statusWatcher.numSynthDefs; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since these few lines of code consumed quite a bit of time in discussion, could you please add a brief comment indicating why server.sendStatusMsg
is here so the next person to read it understands it more readily?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure!
Purpose and Motivation
This fixes #3344.
It makes sure that:
a) SynthDefs have a unique name instead of a channel id
b) SynthDefs are freed even when the bundle is canceled
Not setting the nodeID to nil is ok, nothing substantial depends on it.
For some reason,
addPrepare
needs to be replaced by a direct adding.I would have thought that either way should be OK, but
addPrepare
will cause SynthDef not found errors under load (when bundles are
canceled). This may need further checking, including the server
behaviour.
Types of changes
To-do list