Christof Ressi

Results 72 comments of Christof Ressi

TL;DR: `forkIfNeeded` is not broken, but it can change the behavior of async method calls. This can have unexpected consequences when people try to synchronize with `CondVar` without a proper...

@alln4tural I think nobody wants to replace `forkIfNeeded` *itself* with `fork`. It's really about the use of `forkIfNeeded` in some methods in the Class Library. You can absolutely continue to...

> if user code relies on it to block inside a routine I see. Ouch. > This is the classical "is not a bug, it's a feature" situation. Also known...

> I guess CondVar allows usage without a predicate to match the hang / unhang interface (and then replicates the problem with Condition hang / unhang). The predicate argument is...

@telephon IIUC, it means that some user have been relying on the fact that `loadToFloatArray` and similar methods effectively block when executed inside a Routine (because they internally use `forkIfNeeded`)....

> No it was intended – the reason why forkIfNeeded was used. But yes, it isn't documented. Ah! In this case the solution is very simple: keep everything as it...

I still find the behavior rather problematic. Only a few asynchronous methods use `forkIfNeeded`, so they block inside a Routine; but many others do not, e.g. they call the `action`...

@dyfer I totally agree that `forkIfNeeded` can useful - for the very reasons you've mentioned. The problem I have is really about the *inconsistent* usage in the Class Library. At...

@ygrabit it's been over one year since the first report https://sdk.steinberg.net/viewtopic.php?f=4&t=549 we really need an option to set discrete channels for plugins which don't follow a specific speaker arrangement. The...

In the meantime, some ambisonic plugin developers, like https://www.ssa-plugins.com/ have started to use multiple output busses to achieve higher channel counts. It is ugly, but it works. Still, it is...