[farsight2/master] nice: Add function to add idle callback in agent thread

Olivier Crête olivier.crete at collabora.co.uk
Mon Jul 20 13:27:12 PDT 2009


Add a function to be able to add an idle callback to work around libnice's
recursive locking.
---
 transmitters/nice/fs-nice-agent.c |   16 ++++++++++++++++
 transmitters/nice/fs-nice-agent.h |    3 +++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/transmitters/nice/fs-nice-agent.c b/transmitters/nice/fs-nice-agent.c
index a29dd8c..7551a91 100644
--- a/transmitters/nice/fs-nice-agent.c
+++ b/transmitters/nice/fs-nice-agent.c
@@ -431,3 +431,19 @@ fs_nice_agent_new (guint compatibility_mode,
 
   return self;
 }
+
+
+void
+fs_nice_agent_add_idle (FsNiceAgent *agent, GSourceFunc func,
+    gpointer data, GDestroyNotify destroy_notify)
+{
+  GSource *source;
+
+  g_return_if_fail (func != NULL);
+
+  source = g_idle_source_new ();
+  g_source_set_priority (source, G_PRIORITY_HIGH);
+  g_source_set_callback (source, func, data, destroy_notify);
+  g_source_attach (source, agent->priv->main_context);
+  g_source_unref (source);
+}
diff --git a/transmitters/nice/fs-nice-agent.h b/transmitters/nice/fs-nice-agent.h
index 76982ff..eed41cc 100644
--- a/transmitters/nice/fs-nice-agent.h
+++ b/transmitters/nice/fs-nice-agent.h
@@ -87,6 +87,9 @@ FsNiceAgent *fs_nice_agent_new (guint compatibility_mode,
     GList *preferred_local_candidates,
     GError **error);
 
+void fs_nice_agent_add_idle (FsNiceAgent *agent, GSourceFunc func,
+    gpointer data, GDestroyNotify destroy_notify);
+
 
 GType
 fs_nice_agent_register_type (FsPlugin *module);
-- 
1.5.6.5




More information about the farsight-commits mailing list