Compilation error for POSIX threads program
I amgetting an error when compiling the following program:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#define NUM_THREADS30
extern "C" {
void * PrintHello(void *threadid)
{
printf("\n%d: Hello World!\n", threadid);
pthread_exit(NULL);
}
}
int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc, t;
for(t=0; t<NUM_THREADS; t++){
printf("Creating thread %d\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
}
pthread_exit(NULL);
}
The above code compiles and executes just fine in GNU g++ but fails with an error in SUN CC as follows:
CC -o test test.cc -lpthread
"test.cc", line 13: Error: "PrintHello(void*)" is expected to return a value.
1 Error(s) detected.
Message was edited by:
joe.vijay>

