Fix: sessiond write() to handle EINTR
authorDavid Goulet <dgoulet@efficios.com>
Tue, 18 Dec 2012 21:19:34 +0000 (16:19 -0500)
committerDavid Goulet <dgoulet@efficios.com>
Tue, 18 Dec 2012 21:19:34 +0000 (16:19 -0500)
Signed-off-by: David Goulet <dgoulet@efficios.com>
src/bin/lttng-sessiond/main.c

index 477a9413b71692d8630572dc8ab6de49b5534bad..184ac6be62de3c5667d06c126eb373aa3ce1d1d6 100644 (file)
@@ -1326,8 +1326,10 @@ static void *thread_dispatch_ust_registration(void *data)
                         * at some point in time or wait to the end of the world :)
                         */
                        if (apps_cmd_pipe[1] >= 0) {
                         * at some point in time or wait to the end of the world :)
                         */
                        if (apps_cmd_pipe[1] >= 0) {
-                               ret = write(apps_cmd_pipe[1], ust_cmd,
-                                               sizeof(struct ust_command));
+                               do {
+                                       ret = write(apps_cmd_pipe[1], ust_cmd,
+                                                       sizeof(struct ust_command));
+                               } while (ret < 0 && errno == EINTR);
                                if (ret < 0) {
                                        PERROR("write apps cmd pipe");
                                        if (errno == EBADF) {
                                if (ret < 0) {
                                        PERROR("write apps cmd pipe");
                                        if (errno == EBADF) {
This page took 0.027009 seconds and 4 git commands to generate.