yet another gettimeofday() removal (glibmm idle)

This commit is contained in:
Robin Gareus 2014-05-16 18:34:59 +02:00
parent 827388ffdd
commit 030a8f189d
2 changed files with 8 additions and 11 deletions

View file

@ -37,7 +37,7 @@ class LIBGTKMM2EXT_API IdleAdjustment : public sigc::trackable
private: private:
void underlying_adjustment_value_changed(); void underlying_adjustment_value_changed();
struct timeval last_vc; int64_t last_vc;
gint timeout_handler(); gint timeout_handler();
bool timeout_queued; bool timeout_queued;
}; };

View file

@ -33,7 +33,7 @@ IdleAdjustment::IdleAdjustment (Gtk::Adjustment& adj)
{ {
adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed)); adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed));
timeout_queued = 0; timeout_queued = 0;
gettimeofday (&last_vc, 0); last_vc = g_get_monotonic_time();
} }
IdleAdjustment::~IdleAdjustment () IdleAdjustment::~IdleAdjustment ()
@ -43,7 +43,7 @@ IdleAdjustment::~IdleAdjustment ()
void void
IdleAdjustment::underlying_adjustment_value_changed () IdleAdjustment::underlying_adjustment_value_changed ()
{ {
gettimeofday (&last_vc, 0); last_vc = g_get_monotonic_time();
if (timeout_queued) { if (timeout_queued) {
return; return;
@ -56,16 +56,13 @@ IdleAdjustment::underlying_adjustment_value_changed ()
gint gint
IdleAdjustment::timeout_handler () IdleAdjustment::timeout_handler ()
{ {
struct timeval now; int64_t now, tdiff;
struct timeval 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); if (tdiff > 250000) {
std::cerr << "timer elapsed, diff = " << tdiff.tv_sec << " + " << tdiff.tv_usec << std::endl;
if (tdiff.tv_sec > 0 || tdiff.tv_usec > 250000) {
std::cerr << "send signal\n"; std::cerr << "send signal\n";
value_changed (); value_changed ();
timeout_queued = false; timeout_queued = false;