]> Dogcows Code - chaz/openbox/blobdiff - otk/timer.hh
only store what we need to in the class
[chaz/openbox] / otk / timer.hh
index e982d82bb4fa56c4313912eb8aa3baec8adc45c0..556475c19296a7828f6bb3314e246d0a20aa69d2 100644 (file)
@@ -7,16 +7,7 @@
 */
 
 extern "C" {
-#ifdef    TIME_WITH_SYS_TIME
-#  include <sys/time.h>
-#  include <time.h>
-#else // !TIME_WITH_SYS_TIME
-#  ifdef    HAVE_SYS_TIME_H
-#    include <sys/time.h>
-#  else // !HAVE_SYS_TIME_H
-#    include <time.h>
-#  endif // HAVE_SYS_TIME_H
-#endif // TIME_WITH_SYS_TIME
+#include <ctime>
 }
 
 #include <queue>
@@ -39,9 +30,12 @@ private:
   struct TimerCompare {
      //! Compares two timeval structs
      inline bool operator()(const Timer *a, const Timer *b) const {
-       return timercmp(&a->_timeout, &b->_timeout, >);
+       return ((&a->_timeout)->tv_sec == (&b->_timeout)->tv_sec) ?
+         ((&a->_timeout)->tv_usec > (&b->_timeout)->tv_usec) :
+         ((&a->_timeout)->tv_sec > (&b->_timeout)->tv_sec);
      }
   };
+  friend struct TimerCompare; // give access to _timeout for shitty compilers
 
   typedef
   std::priority_queue<Timer*, std::vector<Timer*>, TimerCompare> TimerQ;
This page took 0.02311 seconds and 4 git commands to generate.