ustd: handle all error codes from ustcomm_send_request
[ust.git] / ustd / ustd.c
index 8eeb62ba361aa0a7696b7540a827fb24b6cafb4e..1144705fec00d0eaaf29bdc13d4471ada0bb4f6f 100644 (file)
@@ -59,7 +59,7 @@ char *pidfile = NULL;
 int active_buffers = 0;
 pthread_mutex_t active_buffers_mutex = PTHREAD_MUTEX_INITIALIZER;
 /* Whether a request to end the program was received. */
-sig_atomic_t terminate_req = 0;
+volatile sig_atomic_t terminate_req = 0;
 
 int get_subbuffer(struct buffer_info *buf)
 {
@@ -71,7 +71,7 @@ int get_subbuffer(struct buffer_info *buf)
 
        asprintf(&send_msg, "get_subbuffer %s", buf->name);
        result = ustcomm_send_request(&buf->conn, send_msg, &received_msg);
-       if((result == -1 && errno == EPIPE) || result == 0) {
+       if((result == -1 && (errno == ECONNRESET || errno == EPIPE)) || result == 0) {
                DBG("app died while being traced");
                retval = GET_SUBBUF_DIED;
                goto end;
@@ -131,7 +131,7 @@ int put_subbuffer(struct buffer_info *buf)
 
        asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old);
        result = ustcomm_send_request(&buf->conn, send_msg, &received_msg);
-       if(result < 0 && errno == ECONNRESET) {
+       if(result < 0 && (errno == ECONNRESET || errno == EPIPE)) {
                retval = PUT_SUBBUF_DIED;
                goto end;
        }
This page took 0.02307 seconds and 4 git commands to generate.