Author: gonzalo
Date: 2006-01-17 00:57:15 -0500 (Tue, 17 Jan 2006)
New Revision: 55665

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/threadpool.c
Log:
2006-01-17 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>

        * threadpool.c: fix problem (Mac only) when more than one asynchronous
        connect. Fixes bug #77020.



Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2006-01-17 03:46:08 UTC (rev 55664)
+++ trunk/mono/mono/metadata/ChangeLog  2006-01-17 05:57:15 UTC (rev 55665)
@@ -1,4 +1,8 @@
+2006-01-17 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
 
+       * threadpool.c: fix problem (Mac only) when more than one asynchronous
+       connect. Fixes bug #77020.
+
 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <[EMAIL PROTECTED]>
 
        * class.c: fixed id assignement for nested interfaces (bug #77275).

Modified: trunk/mono/mono/metadata/threadpool.c
===================================================================
--- trunk/mono/mono/metadata/threadpool.c       2006-01-17 03:46:08 UTC (rev 
55664)
+++ trunk/mono/mono/metadata/threadpool.c       2006-01-17 05:57:15 UTC (rev 
55665)
@@ -764,6 +764,13 @@
        GSList *list;
        SocketIOData *data = &socket_io_data;
 
+#ifdef PLATFORM_MACOSX
+       /* select() for connect() does not work well on the Mac. Bug #75436. */
+       if (state->operation == AIO_OP_CONNECT && state->blocking == TRUE) {
+               start_io_thread_or_queue (state);
+               return;
+       }
+#endif
        WaitForSingleObject (data->new_sem, INFINITE);
        if (data->newpfd == NULL)
                data->newpfd = g_new0 (mono_pollfd, 1);
@@ -778,13 +785,6 @@
        }
 
        events = get_events_from_list (list);
-#ifdef PLATFORM_MACOSX
-       /* select() for connect() does not work well on the Mac. Bug #75436. */
-       if (state->operation == AIO_OP_CONNECT && state->blocking == TRUE) {
-               start_io_thread_or_queue (state);
-               return;
-       }
-#endif
        INIT_POLLFD (data->newpfd, GPOINTER_TO_INT (state->handle), events);
        g_hash_table_replace (data->sock_to_state, GINT_TO_POINTER 
(state->handle), list);
        LeaveCriticalSection (&data->io_lock);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to