projects
/
project
/
libubox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
uloop: allow specifying a timeout for uloop_run()
[project/libubox.git]
/
uloop.c
diff --git
a/uloop.c
b/uloop.c
index
26fef32
..
f503241
100644
(file)
--- a/
uloop.c
+++ b/
uloop.c
@@
-520,8
+520,9
@@
bool uloop_cancelling(void)
return uloop_run_depth > 0 && uloop_cancelled;
}
return uloop_run_depth > 0 && uloop_cancelled;
}
-int uloop_run
(void
)
+int uloop_run
_timeout(int timeout
)
{
{
+ int next_time = 0;
struct timeval tv;
/*
struct timeval tv;
/*
@@
-545,7
+546,11
@@
int uloop_run(void)
break;
uloop_gettime(&tv);
break;
uloop_gettime(&tv);
- uloop_run_events(uloop_get_next_timeout(&tv));
+
+ next_time = uloop_get_next_timeout(&tv);
+ if (timeout > 0 && next_time < timeout)
+ timeout = next_time;
+ uloop_run_events(timeout);
}
if (!--uloop_run_depth)
}
if (!--uloop_run_depth)