On Mon, 15 Jan 2018, Benny Alexandar wrote:

I have registered process callback and also a pointer to data struct as arg
parameter. 
Whenever callback happens this arg is typecasted to data struct, and update the
data struct.

For eg every 20ms process callback happens and updated the data struct arg,
and every 100ms  main function reads the data struct. While reading  and
processing
the data process callback can happen and update it.

How to make sure when main function is reading data struct the process callback
is not updated,

or any other ways to synchronize these two ? Any example app for this.

Jack provides a ring buffer for this purpose. Here is an example
https://github.com/jackaudio/example-clients/blob/master/capture_client.c
Just make things clear, the ring buffer thinks in bytes and so each sample will take more than one byte (we hope :) http://jackaudio.org/files/docs/html/ringbuffer_8h.html


--
Len Ovens
www.ovenwerks.net
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to