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);
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 ();
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]);