gsocket: fix g_socket_condition_timed_wait() recovery after EINTR
authorDan Winship <danw@gnome.org>
Fri, 14 Feb 2014 20:35:11 +0000 (15:35 -0500)
committerDan Winship <danw@gnome.org>
Mon, 17 Feb 2014 16:38:11 +0000 (11:38 -0500)
After getting an EINTR, g_socket_condition_timed_wait() has to adjust
its timeout, but it was trying to convert from nanoseconds to
microseconds by multiplying by 1000 rather than dividing... Oops.

https://bugzilla.gnome.org/show_bug.cgi?id=724239

gio/gsocket.c

index 4b691f8..70618e1 100644 (file)
@@ -3674,7 +3674,7 @@ g_socket_condition_timed_wait (GSocket       *socket,
 
        if (timeout != -1)
          {
-           timeout -= (g_get_monotonic_time () - start_time) * 1000;
+           timeout -= (g_get_monotonic_time () - start_time) / 1000;
            if (timeout < 0)
              timeout = 0;
          }