summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/load-graph.cpp13
-rw-r--r--src/load-graph.h4
-rw-r--r--src/util.cpp23
3 files changed, 38 insertions, 2 deletions
diff --git a/src/load-graph.cpp b/src/load-graph.cpp
index 107cf92..f4ba83f 100644
--- a/src/load-graph.cpp
+++ b/src/load-graph.cpp
@@ -529,7 +529,11 @@ get_net (LoadGraph *graph)
char **ifnames;
guint32 i;
guint64 in = 0, out = 0;
+#if GLIB_CHECK_VERSION(2,61,2)
+ gint64 time;
+#else
GTimeVal time;
+#endif
guint64 din, dout;
ifnames = glibtop_get_netlist(&netlist);
@@ -563,13 +567,20 @@ get_net (LoadGraph *graph)
g_strfreev(ifnames);
- g_get_current_time (&time);
+#if GLIB_CHECK_VERSION(2,61,2)
+ time = g_get_real_time ();
if (in >= graph->net.last_in && out >= graph->net.last_out &&
+ graph->net.time != 0) {
+ float dtime = (double) (time - graph->net.time) / G_USEC_PER_SEC;
+#else
+ g_get_current_time (&time);
+ if (in >= graph->net.last_in && out >= graph->net.last_out &&
graph->net.time.tv_sec != 0) {
float dtime;
dtime = time.tv_sec - graph->net.time.tv_sec +
(double) (time.tv_usec - graph->net.time.tv_usec) / G_USEC_PER_SEC;
+#endif
din = static_cast<guint64>((in - graph->net.last_in) / dtime);
dout = static_cast<guint64>((out - graph->net.last_out) / dtime);
} else {
diff --git a/src/load-graph.h b/src/load-graph.h
index 35bb62b..95e841b 100644
--- a/src/load-graph.h
+++ b/src/load-graph.h
@@ -86,7 +86,11 @@ struct LoadGraph {
struct {
guint64 last_in, last_out;
+#if GLIB_CHECK_VERSION(2,61,2)
+ gint64 time;
+#else
GTimeVal time;
+#endif
guint64 max;
unsigned values[NUM_POINTS];
size_t cur;
diff --git a/src/util.cpp b/src/util.cpp
index 8548249..e306935 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -240,6 +240,23 @@ is_debug_enabled(void)
}
+#if GLIB_CHECK_VERSION(2,61,2)
+static gint64
+get_relative_time(void)
+{
+ static unsigned long start_time;
+ gint64 tv;
+
+ if (G_UNLIKELY(!start_time)) {
+ glibtop_proc_time buf;
+ glibtop_get_proc_time(&buf, getpid());
+ start_time = buf.start_time;
+ }
+
+ tv = g_get_real_time ();
+ return tv - (gint64) start_time;
+}
+#else
static double
get_relative_time(void)
{
@@ -255,6 +272,7 @@ get_relative_time(void)
g_get_current_time(&tv);
return (tv.tv_sec - start_time) + 1e-6 * tv.tv_usec;
}
+#endif
static guint64
get_size_from_column(GtkTreeModel* model, GtkTreeIter* first,
@@ -296,8 +314,11 @@ procman_debug_real(const char *file, int line, const char *func,
msg = g_strdup_vprintf(format, args);
va_end(args);
+#if GLIB_CHECK_VERSION(2,61,2)
+ g_debug("[%li %s:%d %s] %s", get_relative_time(), file, line, func, msg);
+#else
g_debug("[%.3f %s:%d %s] %s", get_relative_time(), file, line, func, msg);
-
+#endif
g_free(msg);
}