Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2013-01-22 18:50:09 +0400
committerJo-Philipp Wich <jow@openwrt.org>2013-01-23 22:32:45 +0400
commit77984bd24d0daa1e6ce7836a31c2b500621af99b (patch)
treeeb0328b0329ea308466a38225be30b98ac35b7db
parente009fd8c82692343062eedb78cad6ce8898f49c5 (diff)
uloop: add uloop_timeout_pending() function to determine the remaining time of an active timeout
-rw-r--r--uloop.c12
-rw-r--r--uloop.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/uloop.c b/uloop.c
index 4095d5b..3a62b62 100644
--- a/uloop.c
+++ b/uloop.c
@@ -387,6 +387,18 @@ int uloop_timeout_cancel(struct uloop_timeout *timeout)
return 0;
}
+int uloop_timeout_pending(struct uloop_timeout *timeout)
+{
+ struct timeval now;
+
+ if (!timeout->pending)
+ return -1;
+
+ uloop_gettime(&now);
+
+ return tv_diff(&timeout->time, &now);
+}
+
int uloop_process_add(struct uloop_process *p)
{
struct uloop_process *tmp;
diff --git a/uloop.h b/uloop.h
index 0a20eb9..8fb890d 100644
--- a/uloop.h
+++ b/uloop.h
@@ -87,6 +87,7 @@ int uloop_fd_delete(struct uloop_fd *sock);
int uloop_timeout_add(struct uloop_timeout *timeout);
int uloop_timeout_set(struct uloop_timeout *timeout, int msecs);
int uloop_timeout_cancel(struct uloop_timeout *timeout);
+int uloop_timeout_pending(struct uloop_timeout *timeout);
int uloop_process_add(struct uloop_process *p);
int uloop_process_delete(struct uloop_process *p);