You are not logged in.
Pages: 1
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
/* Create independent threads each of which will execute function */
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
/* Wait till threads are complete before main continues. Unless we */
/* wait we run the risk of executing an exit which will terminate */
/* the process and all threads before the threads have completed. */
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
im new to the threading concept.the code im trying to execute above, it shows no errors on compiling . but the program goes into an infinite loop when executed. any idea as to where im wrong
??? running the code on HP-UX 11.11
/usr/lib/dld.sl: Unresolved symbol: U_get_unwind_table (code) from /opt/langtools/lib/libpthread_tr.1
/usr/lib/dld.sl: Unresolved symbol: U_get_unwind_table (code) from /opt/langtools/lib/libpthread_tr.1
/usr/lib/dld.sl: Unresolved symbol: U_get_unwind_table (code) from /opt/langtools/lib/libpthread_tr.1
Pid 2998 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space,
or stack size exceeded maxssiz.
Segmentation fault (core dumped)
Offline
Odd... It works just fine for me on Linux...
There are some compiler warnings (are you compiling with warnings enabled?):
you never return a value from print_message_function(), even though it's declared
to return a void* pointer, and you fail to declare a proper int return value for main(),
letting it be inferred K&R style... But, nothing serious... I certainly see no way it can
possibly result in an infinite loop... *shrug*
Offline
It's a HP-UX problem. It uses other default settings for the most common things, including sockets and threads. Basically all programs I've seen that run on Linux and HP-UX have a lot preprocessor code to deal with that problem.
So vishy_85, you can't use Linux code or most other free examples in the web without checking the needed settings first.
Offline
Pages: 1