SDOCM00113338 fix: reduce number of Tasks for messageq_multi.c
[ipc/ipcdev.git] / linux / src / tests / MessageQMulti.c
index 71ab0377d51f23bbbb2b60843c2952285ddb412d..a2c41d465cf620061dee34001b2474de073ade63 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,7 @@
 #include <stdlib.h>
 
 /* IPC Headers */
-#include <Std.h>
+#include <ti/ipc/Std.h>
 #include <ti/ipc/Ipc.h>
 #include <ti/ipc/MessageQ.h>
 
@@ -62,7 +62,7 @@
 
 #define  NUM_LOOPS_DFLT   1000
 #define  NUM_THREADS_DFLT 10
-#define  MAX_NUM_THREADS  50
+#define  MAX_NUM_THREADS  25
 #define  ONE_PROCESS_ONLY (-1)
 
 /** ============================================================================
@@ -189,8 +189,7 @@ int main (int argc, char ** argv)
 {
     struct thread_info threads[MAX_NUM_THREADS];
     int ret,i;
-    void *res;
-    Int32   status = 0;
+    Int32 status = 0;
 
     /* Parse Args: */
     numLoops = NUM_LOOPS_DFLT;
@@ -215,11 +214,19 @@ int main (int argc, char ** argv)
            break;
         default:
            printf("Usage: %s [<numThreads>] [<numLoops>] [<Process #]>\n",
-                   argv[0]);
-           printf("\tDefaults: numThreads: 10, numLoops: 100\n");
-           printf("\tMax Threads: 100\n");
+               argv[0]);
+           printf("\tDefaults: numThreads: %d, numLoops: %d\n",
+               NUM_THREADS_DFLT, NUM_LOOPS_DFLT);
+           printf("\tMax Threads: %d\n", MAX_NUM_THREADS);
            exit(0);
     }
+
+    if (numThreads > MAX_NUM_THREADS) {
+        printf("Error: Maximum number of threads supported is %d\n",
+            MAX_NUM_THREADS);
+        exit(EXIT_FAILURE);
+    }
+
     printf("Using numThreads: %d, numLoops: %d\n", numThreads, numLoops);
     if (procNum != ONE_PROCESS_ONLY) {
         printf("ProcNum: %d\n", procNum);
@@ -246,14 +253,12 @@ int main (int argc, char ** argv)
 
     /* Join all threads: */
     for (i = 0; i < numThreads; i++) {
-        ret = pthread_join(threads[i].thread_id, &res);
+        ret = pthread_join(threads[i].thread_id, NULL);
         if (ret != 0) {
             printf("MessageQMulti: failed to join thread: %d, %s\n",
-                    i, strerror(ret));
+                    threads[i].thread_num, strerror(ret));
         }
-        printf("MessageQMulti: Joined with thread %d; returned value was %s\n",
-                threads[i].thread_num, (char *) res);
-        free(res);      /* Free memory allocated by thread */
+        printf("MessageQMulti: Joined with thread %d\n",threads[i].thread_num);
     }
 
     Ipc_stop();