plugins/common/muxing: compare "origin is Unix epoch" property of clock classes
authorSimon Marchi <simon.marchi@efficios.com>
Fri, 15 Mar 2024 03:37:59 +0000 (23:37 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 26 Mar 2024 18:56:36 +0000 (14:56 -0400)
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 <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/12067
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
src/plugins/common/muxing/muxing.c

index 35bfad133229190a5f05623b80b794909e072db6..5e52c4f497cdf77f17bf5e47b11c7c1aafcef5cb 100644 (file)
@@ -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);
This page took 0.024441 seconds and 4 git commands to generate.