X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Futils.c;h=fef31803f181b9c5aaebeec9b9e6dd025d30247f;hb=88f06f1562c6ecd3a5666baa93a57273fbe10437;hp=358e407e9c326cf038024b570f4c9209a724e2ca;hpb=0b2dc8df2a6d7b3341a72a04767dd6328907c97c;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/utils.c b/src/bin/lttng-sessiond/utils.c index 358e407e9..fef31803f 100644 --- a/src/bin/lttng-sessiond/utils.c +++ b/src/bin/lttng-sessiond/utils.c @@ -17,6 +17,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include @@ -32,44 +33,33 @@ int ht_cleanup_pipe[2] = { -1, -1 }; */ int notify_thread_pipe(int wpipe) { - int ret; + ssize_t ret; /* Ignore if the pipe is invalid. */ if (wpipe < 0) { return 0; } - do { - ret = write(wpipe, "!", 1); - } while (ret < 0 && errno == EINTR); - if (ret < 0) { + ret = lttng_write(wpipe, "!", 1); + if (ret < 1) { PERROR("write poll pipe"); } - return ret; -} - -/* - * Return pointer to home directory path using the env variable HOME. - * - * No home, NULL is returned. - */ -const char *get_home_dir(void) -{ - return ((const char *) getenv("HOME")); + return (int) ret; } void ht_cleanup_push(struct lttng_ht *ht) { - int ret; + ssize_t ret; int fd = ht_cleanup_pipe[1]; + if (!ht) { + return; + } if (fd < 0) return; - do { - ret = write(fd, &ht, sizeof(ht)); - } while (ret < 0 && errno == EINTR); - if (ret < 0 || ret != sizeof(ht)) { + ret = lttng_write(fd, &ht, sizeof(ht)); + if (ret < sizeof(ht)) { PERROR("write ht cleanup pipe %d", fd); if (ret < 0) { ret = -errno;