summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--avahi-sharp/AvahiTest.cs1
-rw-r--r--avahi-sharp/Client.cs11
2 files changed, 7 insertions, 5 deletions
diff --git a/avahi-sharp/AvahiTest.cs b/avahi-sharp/AvahiTest.cs
index fcec737..ba4d59b 100644
--- a/avahi-sharp/AvahiTest.cs
+++ b/avahi-sharp/AvahiTest.cs
@@ -42,6 +42,7 @@ public class AvahiTest {
BrowseServiceTypes ("local");
Console.WriteLine ("Press enter to quit");
Console.ReadLine ();
+ client.Dispose ();
}
private static void OnEntryGroupChanged (object o, EntryGroupStateArgs args)
diff --git a/avahi-sharp/Client.cs b/avahi-sharp/Client.cs
index 6d39469..40ca411 100644
--- a/avahi-sharp/Client.cs
+++ b/avahi-sharp/Client.cs
@@ -271,7 +271,6 @@ namespace Avahi
throw new ClientException (error);
thread = new Thread (PollLoop);
- thread.IsBackground = true;
thread.Start ();
}
@@ -286,10 +285,12 @@ namespace Avahi
public void Dispose ()
{
if (handle != IntPtr.Zero) {
- avahi_client_free (handle);
- avahi_simple_poll_quit (spoll);
- avahi_simple_poll_free (spoll);
- handle = IntPtr.Zero;
+ lock (this) {
+ avahi_client_free (handle);
+ avahi_simple_poll_quit (spoll);
+ avahi_simple_poll_free (spoll);
+ handle = IntPtr.Zero;
+ }
}
}