From: Jonathan Rajotte Date: Thu, 6 Jul 2017 15:08:43 +0000 (-0400) Subject: save/load: add blocking_timeout attribute to channel X-Git-Tag: v2.11.0-rc1~511 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=275472aa987d92feeea39dd50bf605a43db4a703 save/load: add blocking_timeout attribute to channel Fixes #1119 Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index b9bcc666d..3c6b5b8a0 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -115,6 +115,13 @@ int save_kernel_channel_attributes(struct config_writer *writer, if (ret) { goto end; } + + ret = config_writer_write_element_signed_int(writer, + config_element_blocking_timeout, + ext->blocking_timeout); + if (ret) { + goto end; + } } end: @@ -171,6 +178,13 @@ int save_ust_channel_attributes(struct config_writer *writer, goto end; } + ret = config_writer_write_element_signed_int(writer, + config_element_blocking_timeout, + attr->u.s.blocking_timeout); + if (ret) { + goto end; + } + /* * Fetch the monitor timer which is located in the parent of * lttng_ust_channel_attr diff --git a/src/common/config/session-config.c b/src/common/config/session-config.c index 389d05427..9f8640359 100644 --- a/src/common/config/session-config.c +++ b/src/common/config/session-config.c @@ -2105,6 +2105,31 @@ int process_channel_attr_node(xmlNodePtr attr_node, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } + } else if (!strcmp((const char *) attr_node->name, + config_element_blocking_timeout)) { + xmlChar *content; + int64_t blocking_timeout = 0; + + /* blocking_timeout */ + content = xmlNodeGetContent(attr_node); + if (!content) { + ret = -LTTNG_ERR_NOMEM; + goto end; + } + + ret = parse_int(content, &blocking_timeout); + free(content); + if (ret) { + ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; + goto end; + } + + ret = lttng_channel_set_blocking_timeout(channel, + blocking_timeout); + if (ret) { + ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; + goto end; + } } else if (!strcmp((const char *) attr_node->name, config_element_events)) { /* events */