thread safe of idxset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2013-02-20 at 16:57 -0800, Tong Wu wrote:
> Hi Tanu,
> 
> Also which thread does all of the hooks (PA_COE_HOOK_SINK_INPUT_PUT,
> and so on) run in?

The PA_CORE_HOOK_* hooks are always run from the main thread.

> My understanding is that within the PA daemon process, PA daemon has a
> mainloop (which is a thread), and IO threads within the sinks or
> sources. Are there threads corresponding to each of the client
> applications (paplayer and so on)?

There are no separate threads for clients.

> I see that for instance in function apply_cork_to_sink() in
> module-role-cork.c, there is a loop over all sink_inputs of a sink via
> idxset. What about a sink_input disappears during that loop?
> Is apply_cork_to_sink()  running in the PA daemon's mainloop? And all
> sink_input's come and go only happen in the PA daemon's mainloop as
> well?

Yes, module-role-cork operates solely in the main thread, and it should
not touch anything that can be changed from other threads. Sink inputs
can only be removed from the main thread.

-- 
Tanu



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux