[quagga-dev,15518,2/4] lib: add thread_add_timer_tv (struct timeval)

Message ID 1465831755-405068-3-git-send-email-equinox@opensourcerouting.org
State Under Review
Headers show
Series
  • [quagga-dev,15517,1/4] lib: linklist: add listnode_add_before()
Related show

Commit Message

David Lamparter June 13, 2016, 3:29 p.m.
Another zoo extension, this adds a timer scheduling function that takes
a struct timeval argument (which is actually what the wrappers boil down
to, yet it's not exposed...)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
---
 lib/thread.c | 11 +++++++++++
 lib/thread.h |  5 +++++
 2 files changed, 16 insertions(+)

Patch hide | download patch | download mbox

diff --git a/lib/thread.c b/lib/thread.c
index c3713e1..ea741c1 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -818,6 +818,17 @@  funcname_thread_add_timer_msec (struct thread_master *m,
                                             arg, &trel, debugargpass);
 }
 
+/* Add timer event thread with "millisecond" resolution */
+struct thread *
+funcname_thread_add_timer_tv (struct thread_master *m,
+                              int (*func) (struct thread *),
+                              void *arg, struct timeval *tv,
+                              debugargdef)
+{
+  return funcname_thread_add_timer_timeval (m, func, THREAD_TIMER,
+                                            arg, tv, debugargpass);
+}
+
 /* Add a background thread, with an optional millisec delay */
 struct thread *
 funcname_thread_add_background (struct thread_master *m,
diff --git a/lib/thread.h b/lib/thread.h
index 5bc756c..3e3d0ce 100644
--- a/lib/thread.h
+++ b/lib/thread.h
@@ -169,6 +169,7 @@  enum quagga_clkid {
 #define thread_add_write(m,f,a,v) funcname_thread_add_write(m,f,a,v,#f,__FILE__,__LINE__)
 #define thread_add_timer(m,f,a,v) funcname_thread_add_timer(m,f,a,v,#f,__FILE__,__LINE__)
 #define thread_add_timer_msec(m,f,a,v) funcname_thread_add_timer_msec(m,f,a,v,#f,__FILE__,__LINE__)
+#define thread_add_timer_tv(m,f,a,v) funcname_thread_add_timer_tv(m,f,a,v,#f,__FILE__,__LINE__)
 #define thread_add_event(m,f,a,v) funcname_thread_add_event(m,f,a,v,#f,__FILE__,__LINE__)
 #define thread_execute(m,f,a,v) funcname_thread_execute(m,f,a,v,#f,__FILE__,__LINE__)
 
@@ -191,6 +192,10 @@  extern struct thread *funcname_thread_add_timer (struct thread_master *,
 extern struct thread *funcname_thread_add_timer_msec (struct thread_master *,
 				                      int (*)(struct thread *),
 				                      void *, long, debugargdef);
+extern struct thread *funcname_thread_add_timer_tv (struct thread_master *,
+				                    int (*)(struct thread *),
+				                    void *, struct timeval *,
+						    debugargdef);
 extern struct thread *funcname_thread_add_event (struct thread_master *,
 				                 int (*)(struct thread *),
 				                 void *, int, debugargdef);