X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-ust-comm.c;h=651d2aaa45cec437cabb7cdb4147d66330800065;hb=6f97f9c2bbc74605e3de2b05333ecf25fa52d6fc;hp=7cd6a227d66c3bede0f7e244a02038c2c8de668b;hpb=082802f9e5efe64195520826743ea9c23e4ea1b7;p=lttng-ust.git diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c index 7cd6a227..651d2aaa 100644 --- a/liblttng-ust/lttng-ust-comm.c +++ b/liblttng-ust/lttng-ust-comm.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -52,7 +53,7 @@ #include "tracepoint-internal.h" #include "lttng-tracer-core.h" #include "compat.h" -#include "../libringbuffer/tlsfixup.h" +#include "../libringbuffer/rb-init.h" #include "lttng-ust-statedump.h" #include "clock.h" #include "../libringbuffer/getcpu.h" @@ -533,6 +534,30 @@ int get_constructor_timeout(struct timespec *constructor_timeout) return 1; } +static +void get_blocking_retry_timeout(void) +{ + const char *str_blocking_retry_timeout = + lttng_secure_getenv("LTTNG_UST_BLOCKING_RETRY_TIMEOUT"); + + if (str_blocking_retry_timeout) { + long timeout = strtol(str_blocking_retry_timeout, NULL, 10); + + if (timeout < 0) + timeout = -1; + if (timeout > INT_MAX) { + WARN("Saturating %s value from %ld to %d\n", + "LTTNG_UST_BLOCKING_RETRY_TIMEOUT", + timeout, INT_MAX); + timeout = INT_MAX; + } + DBG("%s environment variable value is %ld", + "LTTNG_UST_BLOCKING_RETRY_TIMEOUT", + timeout); + lttng_ust_ringbuffer_set_retry_timeout(timeout); + } +} + static int register_to_sessiond(int socket, enum ustctl_socket_type type) { @@ -1672,6 +1697,8 @@ void __attribute__((constructor)) lttng_ust_init(void) timeout_mode = get_constructor_timeout(&constructor_timeout); + get_blocking_retry_timeout(); + ret = sem_init(&constructor_wait, 0, 0); if (ret) { PERROR("sem_init");