Fix: Only notify socket should have timeout/nonblock
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 28 Feb 2013 22:18:06 +0000 (17:18 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 1 Mar 2013 18:06:48 +0000 (13:06 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
liblttng-ust/lttng-ust-comm.c

index 1f60f86dcb4c4287b9690b7fcfd974fb960e5ab1..e2f94cfdd56de8fa2231e854d291c3c6f3d1c24d 100644 (file)
@@ -926,7 +926,6 @@ restart:
        }
 
        /* Register */
-       timeout = get_notify_sock_timeout();
        for (i = 0; i < 2; i++) {
                ret = ustcomm_connect_unix_sock(sock_info->sock_path);
                if (ret < 0) {
@@ -942,33 +941,34 @@ restart:
                        goto restart;
                }
                open_sock[i] = ret;
-               if (timeout > 0) {
-                       ret = ustcomm_setsockopt_rcv_timeout(open_sock[i],
-                                       timeout);
-                       if (ret < 0) {
-                               WARN("Error setting socket receive timeout");
-                       }
-                       ret = ustcomm_setsockopt_snd_timeout(open_sock[i],
-                                       timeout);
-                       if (ret < 0) {
-                               WARN("Error setting socket send timeout");
-                       }
-               } else if (timeout == -1) {
-                       ret = fcntl(open_sock[i], F_SETFL, O_NONBLOCK);
-                       if (ret < 0) {
-                               WARN("Error setting socket to non-blocking");
-                       }
-               } else {
-                       if (timeout != 0) {
-                               WARN("Unsuppoorted timeout value %ld",
-                                       timeout);
-                       }
-               }
        }
 
        sock_info->socket = open_sock[0];
        sock_info->notify_socket = open_sock[1];
 
+       timeout = get_notify_sock_timeout();
+       if (timeout > 0) {
+               ret = ustcomm_setsockopt_rcv_timeout(sock_info->notify_socket,
+                               timeout);
+               if (ret < 0) {
+                       WARN("Error setting socket receive timeout");
+               }
+               ret = ustcomm_setsockopt_snd_timeout(sock_info->notify_socket,
+                               timeout);
+               if (ret < 0) {
+                       WARN("Error setting socket send timeout");
+               }
+       } else if (timeout == -1) {
+               ret = fcntl(sock_info->notify_socket, F_SETFL, O_NONBLOCK);
+               if (ret < 0) {
+                       WARN("Error setting socket to non-blocking");
+               }
+       } else {
+               if (timeout != 0) {
+                       WARN("Unsuppoorted timeout value %ld", timeout);
+               }
+       }
+
        /*
         * Create only one root handle per listener thread for the whole
         * process lifetime, so we ensure we get ID which is statically
This page took 0.02741 seconds and 4 git commands to generate.