I work with PD when I want to make music more than I want to do advanced CS. And then there's the question of the marginal utility of PD having its own implementation of a ringbuffer, but I will leave that for all of you who have dedicated far more time than I to the maintenance of this project.
...please don't let that stop you. I want to dedicate more time to making music myself!
To be more specific: the libpd ringbuffer uses atomic read-modify-write operations (with dummy arguments) instead of atomic loads and stores. Again, these are hacks from pre-C11 times. Unfortunately, the C11 version follows this pattern instead of using the more appropriate atomic_load[_explicit] and atomic_store_[explicit] functions. Also, it implicitly uses the default memory ordering (memory_order_seq_cst) for all atomic operations, which is much stronger than what we actually need.
That's my fault. I did not have much time when I did that update, so I just found the equivalent functions without changing anything to be conservative. If you have suggestions for improvement, I am open to it. We can also ping Peter.
-------- Dan Wilcox danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
That's my fault. I did not have much time when I did that update, so I just found the equivalent functions without changing anything to be conservative. If you have suggestions for improvement, I am open to it. We can also ping Peter.
No worries! Actually, I always meant to do a PR. Will do it over the weekend.
Dan Wilcox danomatika.com http://danomatika.com robotcowboy.com http://robotcowboy.com
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev