I'm implementing an application that has similarities with gnuradio in as much as it stores ethernet packets containing radar pulse descriptor words in a ring buffer.
Its the same producer/consumer idea, i.e. a producer (Rx) pushing packets into the ring buffer and a consumer (processing algorithm) pulling packets out.
I'm really struggling with the consumer keeping up with the producer though, whether this is due to thread mutex contention, thread scheduling, thread priority or just code bottlenecks I haven't been able to pin down
I was hoping to take a look at the gnuradio src to see how the problem is tackled there.
Could anyone help point me to the right part of the src, I've had an initial go but have been unable to find the specific parts of the code that handle the adding/taking of samples into the gnuradio ring buffer. I'm particularly interested to know what phtread scheduling is used if its different from the defaults and how mutexes are handled