void SocketMonitor::processReadSet( Strategy& strategy, fd_set& readSet ) { #ifdef _MSC_VER for ( unsigned i = 0; i < readSet.fd_count; ++i ) { int s = readSet.fd_array[ i ]; if( s == m_interrupt ) { int socket = 0; recv( s, (char*)&socket, sizeof(socket), 0 ); addWrite( socket ); } else { strategy.onEvent( *this, s ); } } #else Sockets::iterator i; Sockets sockets = m_readSockets; for ( i = sockets.begin(); i != sockets.end(); ++i ) { int s = *i; if ( !FD_ISSET( *i, &readSet ) ) continue; if( s == m_interrupt ) { int socket = 0; recv( s, (char*)&socket, sizeof(socket), 0 ); addWrite( socket ); } else { strategy.onEvent( *this, s ); } } #endif }