+ p_urllc_attr = &p_cfg->urllc_thread_info.thread_attr;
+ pthread_attr_init(p_urllc_attr);
+ if (!pthread_attr_getschedparam(p_urllc_attr, ¶m)) {
+ param.sched_priority = p_cfg->urllc_worker.thread_sched_policy;
+ pthread_attr_setschedparam(p_urllc_attr, ¶m);
+ pthread_attr_setschedpolicy(p_urllc_attr, SCHED_FIFO);
+ }
+
+ if (0 != pthread_create(&p_cfg->urllc_thread_info.thread_id,
+ p_urllc_attr, nr5g_fapi_urllc_thread_func, (void *)
+ p_phy_ctx)) {
+ printf("Error: Unable to create threads\n");
+ if (p_urllc_attr)
+ pthread_attr_destroy(p_urllc_attr);
+ sem_destroy(&p_phy_ctx->urllc_sem_process);
+ sem_destroy(&p_phy_ctx->urllc_sem_done);
+ return FAILURE;
+ }
+ pthread_setname_np(p_cfg->urllc_thread_info.thread_id,
+ "nr5g_fapi_urllc_thread");
+