X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fthreadpool-ms-io-kqueue.c;h=4422b668e8f61c7c2d2a630e1b1cb702dfb5fd56;hb=6adffa4edd217ccde7147db2b49424b8c9e30943;hp=093d3399dc947736f20140470c3ef08cfa306aa0;hpb=be1d9a7fe207f86fe7033cb49dea0e9a367ece79;p=mono.git diff --git a/mono/metadata/threadpool-ms-io-kqueue.c b/mono/metadata/threadpool-ms-io-kqueue.c index 093d3399dc9..4422b668e8f 100644 --- a/mono/metadata/threadpool-ms-io-kqueue.c +++ b/mono/metadata/threadpool-ms-io-kqueue.c @@ -43,13 +43,6 @@ kqueue_init (gint wakeup_pipe_fd) return TRUE; } -static void -kqueue_cleanup (void) -{ - g_free (kqueue_events); - close (kqueue_fd); -} - static void kqueue_register_fd (gint fd, gint events, gboolean is_new) { @@ -88,7 +81,9 @@ kqueue_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), mono_gc_set_skip_thread (TRUE); + MONO_ENTER_GC_SAFE; ready = kevent (kqueue_fd, NULL, 0, kqueue_events, KQUEUE_NEVENTS, NULL); + MONO_EXIT_GC_SAFE; mono_gc_set_skip_thread (FALSE); @@ -124,7 +119,6 @@ kqueue_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), static ThreadPoolIOBackend backend_kqueue = { .init = kqueue_init, - .cleanup = kqueue_cleanup, .register_fd = kqueue_register_fd, .remove_fd = kqueue_remove_fd, .event_wait = kqueue_event_wait,