New upstream version 17.11.3
[deb_dpdk.git] / examples / performance-thread / pthread_shim / main.c
index 850b009..5811cff 100644 (file)
@@ -149,8 +149,7 @@ void *helloworld_pthread(void *arg)
  */
 __thread pthread_t tid[HELLOW_WORLD_MAX_LTHREADS];
 
-static void initial_lthread(void *args);
-static void initial_lthread(void *args __attribute__((unused)))
+static void *initial_lthread(void *args __attribute__((unused)))
 {
        int lcore = (int) rte_lcore_id();
        /*
@@ -161,6 +160,7 @@ static void initial_lthread(void *args __attribute__((unused)))
        pthread_override_set(1);
 
        uint64_t i;
+       int ret;
 
        /* initialize mutex for shared counter */
        print_count = 0;
@@ -187,7 +187,10 @@ static void initial_lthread(void *args __attribute__((unused)))
                pthread_attr_setaffinity_np(&attr, sizeof(rte_cpuset_t), &cpuset);
 
                /* create the thread */
-               pthread_create(&tid[i], &attr, helloworld_pthread, (void *) i);
+               ret = pthread_create(&tid[i], &attr,
+                               helloworld_pthread, (void *) i);
+               if (ret != 0)
+                       rte_exit(EXIT_FAILURE, "Cannot create helloworld thread\n");
        }
 
        /* wait for 1s to allow threads
@@ -221,6 +224,7 @@ static void initial_lthread(void *args __attribute__((unused)))
        /* shutdown the lthread scheduler */
        lthread_scheduler_shutdown(rte_lcore_id());
        lthread_detach();
+       return NULL;
 }
 
 
@@ -231,8 +235,6 @@ static void initial_lthread(void *args __attribute__((unused)))
  * in the core mask
  */
 static int
-lthread_scheduler(void *args);
-static int
 lthread_scheduler(void *args __attribute__((unused)))
 {
        /* create initial thread  */