Multithreading Jack音频工具包API线程同步

Multithreading Jack音频工具包API线程同步,multithreading,thread-safety,jack,Multithreading,Thread Safety,Jack,Jack kit API使用来自其实时线程的回调来处理音频数据: jack_set_process_callback (client, process, 0); ... int process(jack_nframes_t nframes, void *arg) { ... } 当然,我如何在不阻塞操作的情况下,线程安全地将一些参数传输到此回调?我不仅需要传输参数,还需要重新初始化音频过滤对象,因此我需要找到基于事件的解决方案。在主线程中分配事件,并使用ringbuffer jack

Jack kit API使用来自其实时线程的回调来处理音频数据:

jack_set_process_callback (client, process, 0);
...

int process(jack_nframes_t nframes, void *arg)
{
    ...
}

当然,我如何在不阻塞操作的情况下,线程安全地将一些参数传输到此回调?我不仅需要传输参数,还需要重新初始化音频过滤对象,因此我需要找到基于事件的解决方案。

在主线程中分配事件,并使用ringbuffer jack/ringbuffer.h将指向该事件的指针发送到音频线程。使用第二个ringbuffer将指针发送回主线程,以便释放内存


有一个很好的简单示例,我不仅需要传输参数,还需要重新初始化音频过滤对象,因此我需要找到基于事件的解决方案。