[gjs/wip/chergert/sysprof-3: 4/4] profiler: auto-flush capture writer every 3 seconds
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs/wip/chergert/sysprof-3: 4/4] profiler: auto-flush capture writer every 3 seconds
- Date: Fri, 7 Jun 2019 00:30:03 +0000 (UTC)
commit 0218b1232da179adf230b5bd09dcfdc2baf7f1d5
Author: Christian Hergert <chergert redhat com>
Date: Wed Jun 5 16:22:02 2019 -0700
profiler: auto-flush capture writer every 3 seconds
To reduce the amount of data that could be lost in the buffer during a
terminating signal scenario, GJS can use the auto-flush feature of
SysprofCaptureWriter.
Related to GNOME/Initiatives#10
gjs/profiler.cpp | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/gjs/profiler.cpp b/gjs/profiler.cpp
index a8522317..c28080ea 100644
--- a/gjs/profiler.cpp
+++ b/gjs/profiler.cpp
@@ -50,6 +50,8 @@
# include <sysprof-capture.h>
#endif
+#define FLUSH_DELAY_SECONDS 3
+
/*
* This is mostly non-exciting code wrapping the builtin Profiler in
* mozjs. In particular, the profiler consumer is required to "bring your
@@ -425,6 +427,11 @@ gjs_profiler_start(GjsProfiler *self)
return;
}
+ /* Automatically flush to be resilient against SIGINT, etc */
+ sysprof_capture_writer_set_flush_delay(self->capture,
+ g_main_context_get_thread_default(),
+ FLUSH_DELAY_SECONDS);
+
if (!gjs_profiler_extract_maps(self)) {
g_warning("Failed to extract proc maps");
g_clear_pointer(&self->capture, sysprof_capture_writer_unref);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]