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>
/** List of API client reaper functions */
_vl_msg_api_function_list_elt_t *reaper_function_registrations;
/** 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;
/** event log */
elog_main_t *elog_main;
int elog_trace_api_messages;
{
int rv = 0;
memory_client_main_t *mm = &memory_client_main;
{
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)))
{
if (do_map && (rv = vl_client_api_map (svm_name)))
{
rv = pthread_create (&mm->rx_thread_handle,
NULL /*attr */ , rx_thread_fn, 0);
if (rv)
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;
}
mm->connected_to_vlib = 1;