diff options
Diffstat (limited to 'avahi-sharp')
-rw-r--r-- | avahi-sharp/AvahiTest.cs | 1 | ||||
-rw-r--r-- | avahi-sharp/Client.cs | 11 |
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; + } } } |