newsAdvanced Gtk+ Sequencer - News

 
 

Advanced Gtk+ Sequencer v2.2.x - ambiguity of the C language regarding concurrency

Item posted by Joël Krähemann <jkraehemann> on Tue 28 May 2019 02:33:42 AM UTC.

After some development break, I will be back with full power. It was a time make some thoughts and talk on IRC. The ANSI C language doesn't cover all aspects of computing. Especially, as regarding the hardware details. This situation is going to shape the next release 2.2.x.

I learned about the cache-coherency protocol. Finally, came to the conclusion under certain circumstances we can omit the read-read and read-write locks. Yes exactly, read-write locks can be disabled if the document I read is right. This is related to the design of GSequencer.

However, only the deterministic engine mode is aware of race-conditions.

Note, the C language doesn't tell how HW behaves during concurrent access.

Grained mutex control during compilation


There won't any mutex removed but rather controlled by conditional compilation. Thus I want to add 2 new macros:


#define AGS_NO_READ_READ_LOCK
#define AGS_NO_READ_WRITE_LOCK


These macros should be used by AgsRecall and AgsAudioSignal.

Better plugin experience


There are going to be additional command line option, to control if plugins shall be loaded during launch of the application.


The UI shall be capable of adding plugins at runtime.

VST3 ANSI C wrapper


Few days ago, I started to write a C wrapper of VST3 SDK. I am unsure how far I get with the support, until release.



by Joël

Back to the top

Powered by Savane 3.13-caa5.
Corresponding source code