From 0ea4aa9f8de0535273540aeaeacec74421cfb6b8 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 14 Mar 2024 23:37:59 -0400 Subject: [PATCH] plugins/common/muxing: compare "origin is Unix epoch" property of clock classes If two clock classes only differ by their "origin is Unix epoch" property, they will compare equal as far as `compare_clock_classes` is concerned. Add a comparison for that. Change-Id: Iecac8fd4aa3064b221291264f4fc6758e32a0943 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/12067 Reviewed-by: Philippe Proulx Tested-by: jenkins --- src/plugins/common/muxing/muxing.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/common/muxing/muxing.c b/src/plugins/common/muxing/muxing.c index 35bfad13..5e52c4f4 100644 --- a/src/plugins/common/muxing/muxing.c +++ b/src/plugins/common/muxing/muxing.c @@ -170,6 +170,7 @@ int compare_clock_classes(const bt_clock_class *left_cc, const char *left_clock_class_name, *right_clock_class_name; bt_uuid left_clock_class_uuid, right_clock_class_uuid; uint64_t left_freq, right_freq, left_prec, right_prec; + bool left_origin_is_unix, right_origin_is_unix; left_clock_class_uuid = bt_clock_class_get_uuid(left_cc); right_clock_class_uuid = bt_clock_class_get_uuid(right_cc); @@ -188,6 +189,13 @@ int compare_clock_classes(const bt_clock_class *left_cc, } } + left_origin_is_unix = bt_clock_class_origin_is_unix_epoch(left_cc); + right_origin_is_unix = bt_clock_class_origin_is_unix_epoch(right_cc); + + if (left_origin_is_unix != right_origin_is_unix) { + ret = left_origin_is_unix - right_origin_is_unix; + goto end; + } left_clock_class_name = bt_clock_class_get_name(left_cc); right_clock_class_name = bt_clock_class_get_name(right_cc); -- 2.34.1