diff options
author | Tom Jones <thj@freebsd.org> | 2024-01-29 10:55:09 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2024-04-24 16:40:24 +0000 |
commit | d346b8852aa46085bac0bcd0854f2d3043c88e0f (patch) | |
tree | a3ca931a3a75a2a1951634033e2af9fdfc9bbfd1 /src | |
parent | 1817c8e60936fff78615120d3235a6387e0489c0 (diff) |
vlib: Add FreeBSD thread specific header and calls
Type: improvement
Change-Id: Ia84683936da02968991ea717316a834a5da1a517
Signed-off-by: Tom Jones <thj@freebsd.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/vlib/threads.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/vlib/threads.c b/src/vlib/threads.c index 3994afc2cea..bbcb4ec2979 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -16,6 +16,9 @@ #include <signal.h> #include <math.h> +#ifdef __FreeBSD__ +#include <pthread_np.h> +#endif /* __FreeBSD__ */ #include <vppinfra/format.h> #include <vppinfra/time_range.h> #include <vppinfra/interrupt.h> @@ -272,7 +275,11 @@ vlib_thread_init (vlib_main_t * vm) w->thread_mheap = clib_mem_get_heap (); w->thread_stack = vlib_thread_stacks[0]; w->cpu_id = tm->main_lcore; +#ifdef __FreeBSD__ + w->lwp = pthread_getthreadid_np (); +#else w->lwp = syscall (SYS_gettid); +#endif /* __FreeBSD__ */ w->thread_id = pthread_self (); tm->n_vlib_mains = 1; @@ -448,7 +455,11 @@ vlib_worker_thread_bootstrap_fn (void *arg) { vlib_worker_thread_t *w = arg; +#ifdef __FreeBSD__ + w->lwp = pthread_getthreadid_np (); +#else w->lwp = syscall (SYS_gettid); +#endif /* __FreeBSD__ */ w->thread_id = pthread_self (); __os_thread_index = w - vlib_worker_threads; |