summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2015-11-10 18:04:41 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-12-08 14:12:40 -0500
commit76fbc64c5d82c6f540cb4a1ac855f9f098fa6c5f (patch)
treece0d45193a3924fd23851ff81210beb320cf0afb
parent1ca8d40f996c0760a1a8931f54044dd7ca9e3f9c (diff)
downloadquagga-76fbc64c5d82c6f540cb4a1ac855f9f098fa6c5f.tar.bz2
quagga-76fbc64c5d82c6f540cb4a1ac855f9f098fa6c5f.tar.xz
lib: add function to get precise remaining time of timer thread
Signed-off-by: Christian Franke <chris@opensourcerouting.org> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--lib/thread.c8
-rw-r--r--lib/thread.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/thread.c b/lib/thread.c
index cb513323..5e40261e 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -662,6 +662,14 @@ thread_timer_remain_second (struct thread *thread)
return 0;
}
+struct timeval
+thread_timer_remain(struct thread *thread)
+{
+ quagga_get_relative(NULL);
+
+ return timeval_subtract(thread->u.sands, relative_time);
+}
+
#define debugargdef const char *funcname, const char *schedfrom, int fromln
#define debugargpass funcname, schedfrom, fromln
diff --git a/lib/thread.h b/lib/thread.h
index 43ffbf60..5bc756c7 100644
--- a/lib/thread.h
+++ b/lib/thread.h
@@ -209,6 +209,7 @@ extern unsigned int thread_cancel_event (struct thread_master *, void *);
extern struct thread *thread_fetch (struct thread_master *, struct thread *);
extern void thread_call (struct thread *);
extern unsigned long thread_timer_remain_second (struct thread *);
+extern struct timeval thread_timer_remain(struct thread*);
extern int thread_should_yield (struct thread *);
extern unsigned long timeval_elapsed (struct timeval a, struct timeval b);