Derek Smithies wrote:
Hi,
>>> - Playback and record thread are synchronized in a way that forces the two
streams to wait for each others I/O operations.
Yes - can someone test that ptlib alsa plugin works ok with this mutex removed??
This mutex is important, and should not syncrhonize the play&record threads.

There are two PSoundChannel class instances active during a call.
One for play.
One for record.

These PSoundChannel class instances are seperate, and have seperately opened connections to the sound_alsa plugin. Consequently, the mutex you refer to is not syncrhonising access to play&record.

The mutex is locking access to play variables (device pointers) + play

A different mutex instance is locking access to write variables (device pointers) + write.

==================

Now, if the same PSoundChannel instance is used for play and record - (which can be achieved by bad application writing) then you have an application coding problem. I assume Ekiga does not have this issue.


=========================================
Hi :-)

Thanks for this info! As you state, this should work as long as they are instantiated in a proper way. And it's simple just to add some assertions to make sure that this is indeed the case.

I still don't get why the device pointers needs locking. Is the overall Ekiga design such as there are several threads writing concurrently? Or is this a general requirement for the driver, for other scenarios the Ekiga? In other words , is the PTlib alsa driver defined as reentrant?

--a

_______________________________________________
ekiga-list mailing list
ekiga-list@gnome.org
http://mail.gnome.org/mailman/listinfo/ekiga-list

Reply via email to