- //select system call
- select_result = select(fds_size + 1, &read_fds, &write_fds, NULL, timeout);
+ if(select_result) {
+ //select system call
+ select_result = select(fds_size + 1, &read_fds, &write_fds, NULL, timeout);
+ } else {
+ #ifdef WIN32
+ Sleep((timeout->tv_sec * 1000) + (timeout->tv_usec / 1000) + 1);
+ #else
+ struct timespec usleep_time;
+ usleep_time.tv_sec = timeout->tv_sec;
+ usleep_time.tv_nsec = timeout->tv_usec * 1000;
+ nanosleep(&usleep_time, NULL);
+ #endif
+ }