Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
dpdk: correct build to include rdma driver
[vpp.git]
/
src
/
vcl
/
vcl_private.c
diff --git
a/src/vcl/vcl_private.c
b/src/vcl/vcl_private.c
index
95cc0bf
..
847e32c
100644
(file)
--- a/
src/vcl/vcl_private.c
+++ b/
src/vcl/vcl_private.c
@@
-138,6
+138,9
@@
vcl_api_app_worker_add (void)
void
vcl_api_app_worker_del (vcl_worker_t * wrk)
{
void
vcl_api_app_worker_del (vcl_worker_t * wrk)
{
+ if (wrk->api_client_handle == ~0)
+ return;
+
if (vcm->cfg.vpp_app_socket_api)
return vcl_sapi_app_worker_del (wrk);
if (vcm->cfg.vpp_app_socket_api)
return vcl_sapi_app_worker_del (wrk);
@@
-249,6
+252,7
@@
vcl_worker_alloc_and_init ()
wrk = vcl_worker_alloc ();
vcl_set_worker_index (wrk->wrk_index);
wrk = vcl_worker_alloc ();
vcl_set_worker_index (wrk->wrk_index);
+ wrk->api_client_handle = ~0;
wrk->thread_id = pthread_self ();
wrk->current_pid = getpid ();
wrk->thread_id = pthread_self ();
wrk->current_pid = getpid ();
@@
-431,6
+435,7
@@
vcl_segment_attach (u64 segment_handle, char *name, ssvm_segment_type_t type,
if ((rv = fifo_segment_attach (&vcm->segment_main, a)))
{
clib_warning ("svm_fifo_segment_attach ('%s') failed", name);
if ((rv = fifo_segment_attach (&vcm->segment_main, a)))
{
clib_warning ("svm_fifo_segment_attach ('%s') failed", name);
+ clib_rwlock_writer_unlock (&vcm->segment_table_lock);
return rv;
}
hash_set (vcm->segment_table, segment_handle, a->new_segment_indices[0]);
return rv;
}
hash_set (vcm->segment_table, segment_handle, a->new_segment_indices[0]);