1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Use select in Recv().

This commit is contained in:
Bartosz Taudul
2017-09-13 01:53:47 +02:00
parent 953e9c6206
commit 365f2cde23
2 changed files with 16 additions and 8 deletions
+13 -7
View File
@@ -119,17 +119,23 @@ int Socket::Send( const void* _buf, int len )
return buf - start;
}
int Socket::Recv( void* _buf, int len )
int Socket::Recv( void* _buf, int len, const timeval* tv )
{
auto buf = (char*)_buf;
assert( m_sock != -1 );
int size;
do
fd_set fds;
FD_ZERO( &fds );
FD_SET( m_sock, &fds );
select( m_sock+1, &fds, nullptr, nullptr, tv );
if( FD_ISSET( m_sock, &fds ) )
{
size = recv( m_sock, buf, len, 0 );
return recv( m_sock, buf, len, 0 );
}
else
{
return -1;
}
while( size == -1 );
return size;
}