int raw_socket::select(basis::un_int socket, int mode, int timeout) const
{
-// FUNCDEF("select [single]");
+ FUNCDEF("select [single]");
if (!socket) return SI_ERRONEOUS;
fd_set_wrapper read_list, write_list, exceps;
int ret = inner_select(socket, mode, timeout, read_list, write_list, exceps);
fd_set_wrapper &read_list, fd_set_wrapper &write_list,
fd_set_wrapper &exceptions) const
{
-#ifdef DEBUG_RAW_SOCKET
FUNCDEF("inner_select");
-#endif
// setup the file descriptor sets for the select. we check readability,
// writability and exception status.
FD_ZERO(&read_list); FD_SET(socket, &read_list);
FD_ZERO(&write_list); FD_SET(socket, &write_list);
FD_ZERO(&exceptions); FD_SET(socket, &exceptions);
- timeval time_out = time_stamp::fill_timeval_ms(timeout);
+ timeval time_out;
+ time_stamp::fill_timeval_ms(time_out, timeout);
// timeval has tv_sec=seconds, tv_usec=microseconds.
// select will tell us about the socket.
(mode & SELECTING_JUST_READ)? NIL : &write_list,
&exceptions, &time_out);
int error = critical_events::system_error();
-
if (!ret) return 0; // nothing to report.
if (ret == SOCKET_ERROR) {
FD_SET(sock, &write_list);
}
- timeval time_out = time_stamp::fill_timeval_ms(timeout);
+ timeval time_out;
+ time_stamp::fill_timeval_ms(time_out, timeout);
// timeval has tv_sec=seconds, tv_usec=microseconds.
// select will tell us about the socket.