We had written an application in which we create worker thread.
So the main thread will create the worker thread. After some time
the child thread(Worker thread) will call pthread_exit().
This function was written in try{} and there occured an Exception
and is handled in catch(...) handler.
Can any one tell me the reason why the exception occured.
This is on Linux platform. Fedora Core 6 and gcc 4.1
The Implementation of the code is as follows:
This is a simple form of our application, Try to run this small piece
of code.
The output of this is " FATAL: exception not rethrown
Inside catch... Aborted"
#include <stdio.h>
#include <stdlib.h>
#include <stdexcept.h>
#include <pthread.h>
using namespace std;
void print_message_function( void *ptr );
int main()
{
pthread_t thread1;
char *message1 = "Thread 1";
int iret1;
iret1 = pthread_create\( &thread1, NULL, \(void\*\(\*\)\(void*\)\)&print\_message_function, \(void*\) message1\);
pthread_join\( thread1, NULL\);
}
void print_message_function( void *ptr )
{
char *message;
message = \(char *\) ptr;
try
\{
pthread_exit\(\(void*\) 1\);
\}
catch\(...\)
\{
printf\("Inside catch...\\n"\);
\}
}
Can any one tell me the reason why the exception occured?