-void wxSocketInternal::ResumeSocket()
-{
- if (m_thread_waiter != NULL && m_thread_waiter->IsPaused())
- m_thread_waiter->Resume();
+ wxASSERT(m_thread_requester != NULL);
+
+ m_request_locker.Lock();
+
+ // Send a signal to the requester.
+ m_socket_cond.Signal();
+
+ m_request_locker.Unlock();
+
+ // Finish the destruction of the requester.
+ m_thread_requester->Delete();
+
+ delete m_thread_requester;
+ m_thread_requester = NULL;
+ m_invalid_requester = TRUE;
+#else
+ delete m_thread_requester;
+ m_thread_requester = NULL;
+ m_invalid_requester = TRUE;
+#endif