Ticket #326 (new enhancement)
AvahiThreadedPoll should use a recursive mutex
|Reported by:||obiltschnig||Owned by:||lennart|
The current locking requirements in AvahiThreadedPoll? make it difficult or even impossible to use AvahiThreadedPoll? for implementing a C++ (or other language, for that matter) API on top of it. The application must know whether it's calling into Avahi client from a callback or not, and must implement appropriate locking. This creates various nasty issues when trying to implement a higher-level API that automatically handles locking on top of this.
The issue could be quite easilly solved by making the mutex used by AvahiThreadedPoll? recursive, and by removing the assertions in avahi_threaded_poll_lock() and avahi_threaded_poll_unlock().