From 2b29ce8e730d202595973b9be06f61f269c794ca Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 6 Jul 2023 14:52:02 -0700 Subject: [PATCH] libsysprof-analyze: record exit time of processes This will allow us to treat them as a duration in a chart. --- src/libsysprof-analyze/sysprof-document.c | 7 +++++++ src/libsysprof-analyze/sysprof-process-info-private.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/libsysprof-analyze/sysprof-document.c b/src/libsysprof-analyze/sysprof-document.c index 9b6b29f0..cb70e519 100644 --- a/src/libsysprof-analyze/sysprof-document.c +++ b/src/libsysprof-analyze/sysprof-document.c @@ -1069,6 +1069,13 @@ sysprof_document_load_worker (GTask *task, } } } + else if (tainted->type == SYSPROF_CAPTURE_FRAME_EXIT) + { + SysprofProcessInfo *info = g_hash_table_lookup (self->pid_to_process_info, GINT_TO_POINTER (pid)); + + if (info != NULL) + info->exit_time = t; + } else if (tainted->type == SYSPROF_CAPTURE_FRAME_MARK) { const SysprofCaptureMark *mark = (const SysprofCaptureMark *)tainted; diff --git a/src/libsysprof-analyze/sysprof-process-info-private.h b/src/libsysprof-analyze/sysprof-process-info-private.h index ca0647de..9e623c0e 100644 --- a/src/libsysprof-analyze/sysprof-process-info-private.h +++ b/src/libsysprof-analyze/sysprof-process-info-private.h @@ -34,6 +34,7 @@ typedef struct _SysprofProcessInfo SysprofSymbol *fallback_symbol; SysprofSymbol *symbol; int pid; + gint64 exit_time; } SysprofProcessInfo; SysprofProcessInfo *sysprof_process_info_new (SysprofMountNamespace *mount_namespace,