summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIJsbrand Wijnands <ice@cisco.com>2019-10-08 13:50:55 +0200
committerIJsbrand Wijnands <iwijnand@cisco.com>2019-10-08 16:40:19 +0200
commit8229580e8da0db31503ce5c02371561582e73d02 (patch)
tree8a80795c2d1463173aecdfe69b0e56d21df9d0a8
parent6be55648334308d4eaa4a02143b968720bb62078 (diff)
api: add bapi thread handle to api main structure.
Adding the thread handle to the api main structure allows the client process of the bin api to manage the thread, like setting the thread name for example. Type: feature Change-Id: I38b58ddc83d5958c4bda76eadd371eee1545724b Signed-off-by: IJsbrand Wijnands <ice@cisco.com>
-rw-r--r--src/vlibapi/api_common.h3
-rw-r--r--src/vlibmemory/memory_client.c10
2 files changed, 12 insertions, 1 deletions
diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h
index 98fcbdefef9..bb1997041f4 100644
--- a/src/vlibapi/api_common.h
+++ b/src/vlibapi/api_common.h
@@ -340,6 +340,9 @@ typedef struct
/** List of API client reaper functions */
_vl_msg_api_function_list_elt_t *reaper_function_registrations;
+ /** Bin API thread handle */
+ pthread_t rx_thread_handle;
+
/** event log */
elog_main_t *elog_main;
int elog_trace_api_messages;
diff --git a/src/vlibmemory/memory_client.c b/src/vlibmemory/memory_client.c
index f032ae77d19..25c01f18e80 100644
--- a/src/vlibmemory/memory_client.c
+++ b/src/vlibmemory/memory_client.c
@@ -394,6 +394,7 @@ connect_to_vlib_internal (const char *svm_name,
{
int rv = 0;
memory_client_main_t *mm = &memory_client_main;
+ api_main_t *am = &api_main;
if (do_map && (rv = vl_client_api_map (svm_name)))
{
@@ -415,7 +416,14 @@ connect_to_vlib_internal (const char *svm_name,
rv = pthread_create (&mm->rx_thread_handle,
NULL /*attr */ , rx_thread_fn, 0);
if (rv)
- clib_warning ("pthread_create returned %d", rv);
+ {
+ clib_warning ("pthread_create returned %d", rv);
+ am->rx_thread_handle = 0;
+ }
+ else
+ {
+ am->rx_thread_handle = mm->rx_thread_handle;
+ }
}
mm->connected_to_vlib = 1;