> Could anyone introduce how a message is handled by a filter sink and its > master sink? > > Take echo cancellation as example, I found > > 1.?????? The AEC filter sink?s message handler is called in its master ALSA > sink?s IO thread. > > 2.?????? It seems that the AEC virtual sink share its master?s message > queue, right? > > Because In module-echo-cancel?s pa__init(), I found the following code: > > pa_sink_set_asyncmsgq(u->sink, sink_master->asyncmsgq); > > Then how a message to filter/master sink is dispatched in one IO thread? Can > a message is processed by the filter and then by the master? What exactly is the problem you are facing? Or are you looking for an explanation of messaging between main and IO threads?