Browse Source

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>
Christian Franke 4 years ago
parent
commit
76fbc64c5d
2 changed files with 9 additions and 0 deletions
  1. 8 0
      lib/thread.c
  2. 1 0
      lib/thread.h

+ 8 - 0
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
 

+ 1 - 0
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);