projects
/
vuplus_dvbapp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
base: fix a very theoretical performance problem
[vuplus_dvbapp]
/
lib
/
base
/
ebase.h
diff --git
a/lib/base/ebase.h
b/lib/base/ebase.h
index
7fd5af0
..
d470941
100644
(file)
--- a/
lib/base/ebase.h
+++ b/
lib/base/ebase.h
@@
-22,6
+22,11
@@
static inline bool operator<( const timeval &t1, const timeval &t2 )
return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_usec < t2.tv_usec);
}
return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_usec < t2.tv_usec);
}
+static inline bool operator<=( const timeval &t1, const timeval &t2 )
+{
+ return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_usec <= t2.tv_usec);
+}
+
static inline timeval &operator+=( timeval &t1, const timeval &t2 )
{
t1.tv_sec += t2.tv_sec;
static inline timeval &operator+=( timeval &t1, const timeval &t2 )
{
t1.tv_sec += t2.tv_sec;
@@
-175,10
+180,11
@@
class eMainloop
int loop_level;
void processOneEvent();
int retval;
int loop_level;
void processOneEvent();
int retval;
- int timer_offset;
pthread_mutex_t recalcLock;
pthread_mutex_t recalcLock;
+
+ int m_now_is_invalid;
public:
public:
- void addTimeOffset(int offset);
+
static
void addTimeOffset(int offset);
void addSocketNotifier(eSocketNotifier *sn);
void removeSocketNotifier(eSocketNotifier *sn);
void addTimer(eTimer* e);
void addSocketNotifier(eSocketNotifier *sn);
void removeSocketNotifier(eSocketNotifier *sn);
void addTimer(eTimer* e);
@@
-186,8
+192,9
@@
public:
static ePtrList<eMainloop> existing_loops;
eMainloop()
static ePtrList<eMainloop> existing_loops;
eMainloop()
- :app_quit_now(0),loop_level(0),retval(0)
,timer_offset(0)
+ :app_quit_now(0),loop_level(0),retval(0)
{
{
+ m_now_is_invalid = 0;
existing_loops.push_back(this);
pthread_mutex_init(&recalcLock, 0);
}
existing_loops.push_back(this);
pthread_mutex_init(&recalcLock, 0);
}