- ret = pthread_create(thread, attr, rte_thread_init, (void *)¶ms);
- if (ret != 0)
- return ret;
+ params->start_routine = start_routine;
+ params->arg = arg;
+
+ pthread_barrier_init(¶ms->configured, NULL, 2);
+
+ ret = pthread_create(thread, attr, rte_thread_init, (void *)params);
+ if (ret != 0) {
+ free(params);
+ return -ret;
+ }