vcl: improve handling of thread cancelation in vls
Meant for multi-threaded applications that share a vls and vcl worker. Disable thread cancelation on thread new thread detection and add a new pthread cancelation point in vls_mt_mq_lock Type: improvement Change-Id: I21b16ee7c6a5ec31b8f6363325cc7ffa463c7b5c Signed-off-by: Florin Coras <fcoras@cisco.com>
This commit is contained in:
parent
b8af24b26d
commit
4e271dda7b
@ -301,11 +301,18 @@ vls_mt_add (void)
|
||||
}
|
||||
else
|
||||
vcl_set_worker_index (vlsl->vls_wrk_index);
|
||||
|
||||
/* Only allow new pthread to be cancled in vls_mt_mq_lock */
|
||||
int old_state;
|
||||
if (vlsl->vls_mt_n_threads >= 2)
|
||||
pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &old_state);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vls_mt_mq_lock (void)
|
||||
{
|
||||
/* Allow controlled cancelation of thread before grabbing mutex */
|
||||
pthread_testcancel ();
|
||||
pthread_mutex_lock (&vlsl->vls_mt_mq_mlock);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user