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 <[email protected]>
}
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);
}