Code Review
/
vpp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
review
|
tree
raw
|
patch
| inline |
side by side
(parent:
39d25e5
)
vlib: don't ASSERT(vm) in worker thread bootstrap
63/33263/2
author
Dave Barach
<
[email protected]
>
Tue, 27 Jul 2021 13:27:07 +0000
(09:27 -0400)
committer
Florin Coras
<
[email protected]
>
Tue, 27 Jul 2021 21:15:16 +0000
(21:15 +0000)
Otherwise, threads declared with .no_data_structure_clone=1 crash on
startup.
Type: fix
Signed-off-by: Dave Barach <
[email protected]
>
Change-Id: I5dcb25d1b61330fc9eee5427b815fcfcb9bf2153
src/vlib/threads.c
patch
|
blob
|
history
diff --git
a/src/vlib/threads.c
b/src/vlib/threads.c
index
a33e70a
..
ad677dc
100644
(file)
--- a/
src/vlib/threads.c
+++ b/
src/vlib/threads.c
@@
-407,14
+407,16
@@
vlib_worker_thread_bootstrap_fn (void *arg)
{
void *rv;
vlib_worker_thread_t *w = arg;
+ vlib_main_t *vm = 0;
w->lwp = syscall (SYS_gettid);
w->thread_id = pthread_self ();
__os_thread_index = w - vlib_worker_threads;
- vlib_process_start_switch_stack (vlib_get_main_by_index (__os_thread_index),
- 0);
+ vm = vlib_global_main.vlib_mains[__os_thread_index];
+
+ vlib_process_start_switch_stack (vm, 0);
rv = (void *) clib_calljmp
((uword (*)(uword)) w->thread_function,
(uword) arg, w->thread_stack + VLIB_THREAD_STACK_SIZE);