]> git.saurik.com Git - wxWidgets.git/commitdiff
Never block in wxSocket::Peek().
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 26 Jan 2010 23:04:26 +0000 (23:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 26 Jan 2010 23:04:26 +0000 (23:04 +0000)
Peek() is not expected to block so ensure that it doesn't, independently of
the currently used socket flags, by using wxSOCKET_NOWAIT.

See #11528.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
src/common/socket.cpp

index c7193993224f4f732574818c3829557719879775..573305c573df3e801d254eeef171bc5025c38984 100644 (file)
@@ -437,6 +437,7 @@ All:
 - Added support for unique volume names to wxFileName (Neno Ganchev).
 - Correct bugs when using wxTextInputStream with wxConvAuto (Leon Buikstra).
 - Don't crash when input is empty in wxFileConfig ctor (Lukasz Michalski).
+- Correct wxSocket::Peek() to not block (Anders Larsen).
 
 Unix:
 
index 44b408c49cef9fe5ca76b19d86aa42fcf37cbfb2..228fe79a28d64f10c1ab23ed31520131e77621d4 100644 (file)
@@ -1109,6 +1109,9 @@ wxSocketBase& wxSocketBase::Peek(void* buffer, wxUint32 nbytes)
 {
     wxSocketReadGuard read(this);
 
+    // Peek() should never block
+    wxSocketWaitModeChanger changeFlags(this, wxSOCKET_NOWAIT);
+
     m_lcount = DoRead(buffer, nbytes);
 
     Pushback(buffer, m_lcount);