[Spread-cvs] commit: r362 - in trunk: daemon libspread

jonathan at spread.org jonathan at spread.org
Tue Nov 14 00:54:11 EST 2006


Author: jonathan
Date: 2006-11-14 00:54:11 -0500 (Tue, 14 Nov 2006)
New Revision: 362

Modified:
   trunk/daemon/Changelog
   trunk/libspread/sp.c
Log:
Fix bug where tv_sec field was used in SP_connect instead
of tv_usec. Reported several times, original patch by Daniel Savarese.



Modified: trunk/daemon/Changelog
===================================================================
--- trunk/daemon/Changelog	2006-11-14 05:22:24 UTC (rev 361)
+++ trunk/daemon/Changelog	2006-11-14 05:54:11 UTC (rev 362)
@@ -1,3 +1,8 @@
+Tue Nov 14 00:38:14 2006  Jonathan Stanton  <jonathan at cnds.jhu.edu>
+
+	* sp.c (connect_nointr_timeout): Fix bug where tv_sec was
+	used instead of tv_usec. Patch supplied by Daniel Savarese.
+
 Mon Nov 13 19:30:30 2006  Jonathan Stanton  <jonathan at cnds.jhu.edu>
 
 	* groups.c (G_compare_daemon_vs_set): Fix compile warning

Modified: trunk/libspread/sp.c
===================================================================
--- trunk/libspread/sp.c	2006-11-14 05:22:24 UTC (rev 361)
+++ trunk/libspread/sp.c	2006-11-14 05:54:11 UTC (rev 362)
@@ -271,14 +271,14 @@
                 FD_SET(s, &fixed_rset);
                 rset = fixed_rset;
                 sel_time.tv_sec = wait_time.sec;
-                sel_time.tv_sec = wait_time.usec;
+                sel_time.tv_usec = wait_time.usec;
                 while( ((num_ready = select(s+1, &rset, NULL, NULL, &sel_time)) == -1) && ((sock_errno == EINTR) || (sock_errno == EAGAIN) || (sock_errno == EWOULDBLOCK)) )
                 {
                         temp_time = E_get_time();
                         if (E_compare_time(temp_time, target_time) < 0 ) {
                                 wait_time = E_sub_time(target_time, temp_time);
                                 sel_time.tv_sec = wait_time.sec;
-                                sel_time.tv_sec = wait_time.usec;
+                                sel_time.tv_usec = wait_time.usec;
                         } else {
                                 printf("recv_nointr_timeout: Timed out when interrupted\n");
                                 sock_set_errno( ERR_TIMEDOUT );
@@ -328,7 +328,7 @@
         target_time = E_add_time(start_time, *time_out);
         wait_time = *time_out;
         sel_time.tv_sec = wait_time.sec;
-        sel_time.tv_sec = wait_time.usec;
+        sel_time.tv_usec = wait_time.usec;
         /* set file descriptor to non-blocking */
         on = 1;
         ret_ioctl = ioctl( s, FIONBIO, &on);
@@ -352,7 +352,7 @@
             if (E_compare_time(temp_time, target_time) < 0 ) {
                 wait_time = E_sub_time(target_time, temp_time);
                 sel_time.tv_sec = wait_time.sec;
-                sel_time.tv_sec = wait_time.usec;
+                sel_time.tv_usec = wait_time.usec;
             } else {
                 Alarmp( SPLOG_WARNING, SESSION, "connect_nointr_timeout: connect interrupted and select wait timesout during transient error: %s\n", sock_strerror(sock_errno));
                 close(s);




More information about the Spread-cvs mailing list