diff options
author | Youness Alaoui <youness.alaoui@collabora.co.uk> | 2013-02-04 22:14:06 -0500 |
---|---|---|
committer | Youness Alaoui <youness.alaoui@collabora.co.uk> | 2013-02-04 22:14:06 -0500 |
commit | b1528dae91d92d5576bec753c5e7ec16f5ec0c8e (patch) | |
tree | ec0797290c1a181ba3b13dc7d0780bf02bc7acf8 /examples | |
parent | 6eb3fc6857124691cfc3f85b72b4d9d189b97408 (diff) | |
download | libnice-b1528dae91d92d5576bec753c5e7ec16f5ec0c8e.tar.gz |
Fix/clean threaded-example
Diffstat (limited to 'examples')
-rw-r--r-- | examples/threaded-example.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/examples/threaded-example.c b/examples/threaded-example.c index 683097e..7c125f2 100644 --- a/examples/threaded-example.c +++ b/examples/threaded-example.c @@ -45,7 +45,6 @@ #include <agent.h> static GMainLoop *gloop; -static GIOChannel* io_stdin; static gchar *stun_addr = NULL; static guint stun_port; static gboolean controlling; @@ -104,15 +103,14 @@ main(int argc, char *argv[]) g_type_init(); gloop = g_main_loop_new(NULL, FALSE); - io_stdin = g_io_channel_unix_new(fileno(stdin)); + // Run the mainloop and the example thread exit_thread = FALSE; gloopthread = g_thread_new("example thread", &example_thread, NULL); g_main_loop_run (gloop); exit_thread = TRUE; g_main_loop_unref(gloop); - g_io_channel_unref (io_stdin); g_thread_join (gloopthread); g_thread_unref (gloopthread); @@ -124,10 +122,13 @@ example_thread(void *data) { NiceAgent *agent; NiceCandidate *local, *remote; + GIOChannel* io_stdin; guint stream_id; gchar *line = NULL; int rval; + io_stdin = g_io_channel_unix_new(fileno(stdin)); + // Create the nice agent agent = nice_agent_new(g_main_loop_get_context (gloop), NICE_COMPATIBILITY_RFC5245); @@ -188,8 +189,7 @@ example_thread(void *data) // Parse remote candidate list and set it on the agent rval = parse_remote_data(agent, stream_id, 1, line); if (rval == EXIT_SUCCESS) { - // Return FALSE so we stop listening to stdin since we parsed the - // candidates correctly + g_free (line); break; } else { fprintf(stderr, "ERROR: failed to parse remote data\n"); @@ -240,6 +240,7 @@ example_thread(void *data) } end: + g_io_channel_unref (io_stdin); g_object_unref(agent); g_main_loop_quit (gloop); |