diff options
author | Robin Gareus <robin@gareus.org> | 2014-05-16 18:34:59 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-05-16 18:34:59 +0200 |
commit | 030a8f189de2c5666a08f010fb398e39f240d816 (patch) | |
tree | dc29e52d05d1ab8097124c5b6ae6a6b37448e477 /libs | |
parent | 827388ffdd0e320eabda14efec2803c43c9fabee (diff) |
yet another gettimeofday() removal (glibmm idle)
Diffstat (limited to 'libs')
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/idle_adjustment.cc | 17 |
2 files changed, 8 insertions, 11 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h b/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h index 58e2f8f5bd..00b65f21d8 100644 --- a/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h +++ b/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h @@ -37,7 +37,7 @@ class LIBGTKMM2EXT_API IdleAdjustment : public sigc::trackable private: void underlying_adjustment_value_changed(); - struct timeval last_vc; + int64_t last_vc; gint timeout_handler(); bool timeout_queued; }; diff --git a/libs/gtkmm2ext/idle_adjustment.cc b/libs/gtkmm2ext/idle_adjustment.cc index edf5517fff..030d717133 100644 --- a/libs/gtkmm2ext/idle_adjustment.cc +++ b/libs/gtkmm2ext/idle_adjustment.cc @@ -33,7 +33,7 @@ IdleAdjustment::IdleAdjustment (Gtk::Adjustment& adj) { adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed)); timeout_queued = 0; - gettimeofday (&last_vc, 0); + last_vc = g_get_monotonic_time(); } IdleAdjustment::~IdleAdjustment () @@ -43,7 +43,7 @@ IdleAdjustment::~IdleAdjustment () void IdleAdjustment::underlying_adjustment_value_changed () { - gettimeofday (&last_vc, 0); + last_vc = g_get_monotonic_time(); if (timeout_queued) { return; @@ -56,16 +56,13 @@ IdleAdjustment::underlying_adjustment_value_changed () gint IdleAdjustment::timeout_handler () { - struct timeval now; - struct timeval tdiff; + int64_t now, tdiff; + now = g_get_monotonic_time(); + tdiff = now - last_vc; - gettimeofday (&now, 0); + std::cerr << "timer elapsed, diff = " << tdiff << " usec" << std::endl; - timersub (&now, &last_vc, &tdiff); - - std::cerr << "timer elapsed, diff = " << tdiff.tv_sec << " + " << tdiff.tv_usec << std::endl; - - if (tdiff.tv_sec > 0 || tdiff.tv_usec > 250000) { + if (tdiff > 250000) { std::cerr << "send signal\n"; value_changed (); timeout_queued = false; |