summaryrefslogtreecommitdiffstats
path: root/src/vlib
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2020-04-28 18:00:21 -0400
committerDave Barach <openvpp@barachs.net>2020-04-29 21:36:51 +0000
commit09c0946e91b4810c8450fe0962b2085506fbda25 (patch)
treedaa27fb97f6220a17ce87e67a044e6b76dee66e5 /src/vlib
parentfd0834262c517ea3a420fdba05fb95bc4141762b (diff)
vlib: add ASSERT to vlib_time_now(...)
Calling vlib_time_now (&vlib_global_main) from a worker thread is a bad mistake. ASSERT (vm->thread_index == __os_thread_index) will catch it. Type: fix Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I55af6de84e06143f8f43adc62103b77267a7a441 (cherry picked from commit 77d98382824ca211fb55fcf842931930ccfb3baa)
Diffstat (limited to 'src/vlib')
-rw-r--r--src/vlib/main.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vlib/main.h b/src/vlib/main.h
index af6539efc75..20b8b464e34 100644
--- a/src/vlib/main.h
+++ b/src/vlib/main.h
@@ -278,6 +278,13 @@ void vlib_worker_loop (vlib_main_t * vm);
always_inline f64
vlib_time_now (vlib_main_t * vm)
{
+#if CLIB_DEBUG > 0
+ extern __thread uword __os_thread_index;
+#endif
+ /*
+ * Make sure folks don't pass &vlib_global_main from a worker thread.
+ */
+ ASSERT (vm->thread_index == __os_thread_index);
return clib_time_now (&vm->clib_time) + vm->time_offset;
}