X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fcommon%2Ftrace-chunk.c;h=2f31fb689ba0a683e074c74268017b6c8a659a12;hb=84a85e3c23cd28fd2a6dc3f1b6ff29ea4b58ba32;hp=a18b2077e5dc9c35680d96507c7491f515824471;hpb=21c5a2331cdefbf6316f2ad9cb648061bde47c8e;p=lttng-tools.git diff --git a/src/common/trace-chunk.c b/src/common/trace-chunk.c index a18b2077e..2f31fb689 100644 --- a/src/common/trace-chunk.c +++ b/src/common/trace-chunk.c @@ -2001,7 +2001,20 @@ LTTNG_HIDDEN struct lttng_trace_chunk * lttng_trace_chunk_registry_publish_chunk( struct lttng_trace_chunk_registry *registry, - uint64_t session_id, struct lttng_trace_chunk *chunk) + uint64_t session_id, + struct lttng_trace_chunk *chunk) +{ + bool unused; + + return lttng_trace_chunk_registry_publish_chunk_published( + registry, session_id, chunk, &unused); +} + +struct lttng_trace_chunk * +lttng_trace_chunk_registry_publish_chunk_published( + struct lttng_trace_chunk_registry *registry, + uint64_t session_id, struct lttng_trace_chunk *chunk, + bool *previously_published) { struct lttng_trace_chunk_registry_element *element; unsigned long element_hash; @@ -2036,6 +2049,7 @@ lttng_trace_chunk_registry_publish_chunk( element->registry = registry; /* Acquire a reference for the caller. */ if (lttng_trace_chunk_get(&element->chunk)) { + *previously_published = false; break; } else { /* @@ -2062,6 +2076,7 @@ lttng_trace_chunk_registry_publish_chunk( if (lttng_trace_chunk_get(published_chunk)) { lttng_trace_chunk_put(&element->chunk); element = published_element; + *previously_published = true; break; } /*