]> git.saurik.com Git - wxWidgets.git/commitdiff
don't remove/add back the socket to the list of inputs monitored by the event loop...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Dec 2008 21:56:05 +0000 (21:56 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Dec 2008 21:56:05 +0000 (21:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/unix/private/sockunix.h
src/unix/sockunix.cpp

index 7a382c8ad3fb286b191c760ad76776e29e092b4c..11e512ec15d34c5fd19cc6b196c830e43b6e0415 100644 (file)
@@ -52,12 +52,7 @@ public:
 private:
     virtual void DoClose()
     {
 private:
     virtual void DoClose()
     {
-        wxSocketManager * const manager = wxSocketManager::Get();
-        if ( manager )
-        {
-            manager->Uninstall_Callback(this, wxSOCKET_INPUT);
-            manager->Uninstall_Callback(this, wxSOCKET_OUTPUT);
-        }
+        DisableEvents();
 
         close(m_fd);
     }
 
         close(m_fd);
     }
@@ -78,10 +73,6 @@ private:
     void DoEnableEvents(bool enable);
 
 
     void DoEnableEvents(bool enable);
 
 
-    // enable or disable events for the given event
-    void EnableEvent(wxSocketNotify event);
-    void DisableEvent(wxSocketNotify event);
-
     int Recv_Stream(void *buffer, int size);
     int Recv_Dgram(void *buffer, int size);
     int Send_Stream(const void *buffer, int size);
     int Recv_Stream(void *buffer, int size);
     int Recv_Dgram(void *buffer, int size);
     int Send_Stream(const void *buffer, int size);
index 3becca02a45a24ebae93ae43d531acc99c288a51..28aa7ed7db35ac0ac3b249ced7464d9898aa3dc7 100644 (file)
@@ -493,9 +493,6 @@ int wxSocketImplUnix::Read(void *buffer, int size)
     return -1;
   }
 
     return -1;
   }
 
-  /* Disable events during query of socket status */
-  DisableEvent(wxSOCKET_INPUT);
-
   /* Read the data */
   if (m_stream)
       ret = Recv_Stream(buffer, size);
   /* Read the data */
   if (m_stream)
       ret = Recv_Stream(buffer, size);
@@ -525,9 +522,6 @@ int wxSocketImplUnix::Read(void *buffer, int size)
           m_error = wxSOCKET_IOERR;
   }
 
           m_error = wxSOCKET_IOERR;
   }
 
-  /* Enable events again now that we are done processing */
-  EnableEvent(wxSOCKET_INPUT);
-
   return ret;
 }
 
   return ret;
 }
 
@@ -557,15 +551,6 @@ int wxSocketImplUnix::Write(const void *buffer, int size)
     {
       m_error = wxSOCKET_IOERR;
     }
     {
       m_error = wxSOCKET_IOERR;
     }
-
-    /* Only reenable OUTPUT events after an error (just like WSAAsyncSelect
-     * in MSW). Once the first OUTPUT event is received, users can assume
-     * that the socket is writable until a read operation fails. Only then
-     * will further OUTPUT events be posted.
-     */
-    EnableEvent(wxSOCKET_OUTPUT);
-
-    return -1;
   }
 
   return ret;
   }
 
   return ret;
@@ -573,16 +558,6 @@ int wxSocketImplUnix::Write(const void *buffer, int size)
 
 /* Flags */
 
 
 /* Flags */
 
-void wxSocketImplUnix::EnableEvent(wxSocketNotify event)
-{
-    wxSocketManager::Get()->Install_Callback(this, event);
-}
-
-void wxSocketImplUnix::DisableEvent(wxSocketNotify event)
-{
-    wxSocketManager::Get()->Uninstall_Callback(this, event);
-}
-
 int wxSocketImplUnix::Recv_Stream(void *buffer, int size)
 {
   int ret;
 int wxSocketImplUnix::Recv_Stream(void *buffer, int size)
 {
   int ret;
@@ -690,7 +665,6 @@ int wxSocketImplUnix::Send_Dgram(const void *buffer, int size)
 
 void wxSocketImplUnix::OnStateChange(wxSocketNotify event)
 {
 
 void wxSocketImplUnix::OnStateChange(wxSocketNotify event)
 {
-    DisableEvent(event);
     NotifyOnStateChange(event);
 
     if ( event == wxSOCKET_LOST )
     NotifyOnStateChange(event);
 
     if ( event == wxSOCKET_LOST )