X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/05583a26e177257410822cf09447e5047a506f7c..09981ba7981297056da49ceb0eb85d3ac9fc5f6f:/src/osx/core/sockosx.cpp?ds=sidebyside diff --git a/src/osx/core/sockosx.cpp b/src/osx/core/sockosx.cpp index d19c7ef901..0b6b77d0e1 100644 --- a/src/osx/core/sockosx.cpp +++ b/src/osx/core/sockosx.cpp @@ -16,6 +16,9 @@ #include "wx/private/socket.h" #include "wx/unix/private/sockunix.h" #include "wx/apptrait.h" +#include "wx/link.h" + +#include "wx/osx/core/cfstring.h" // for wxMacWakeUp() only #include @@ -156,6 +159,13 @@ private: default: wxFAIL_MSG( "unexpected socket callback" ); } + + // receiving a socket event does _not_ make ReceiveNextEvent() (or the + // equivalent NSApp:nextEventMatchingMask:untilDate:inMode:dequeue) + // return control, i.e. apparently it doesn't count as a real event, so + // we need to generate a wake up to return control to the code waiting + // for something to happen and process this socket event + wxMacWakeUp(); } CFSocketRef m_socket; @@ -276,4 +286,7 @@ static struct OSXManagerSetter } } gs_OSXManagerSetter; +// see the relative linker macro in socket.cpp +wxFORCE_LINK_THIS_MODULE( osxsocket ); + #endif // wxUSE_SOCKETS