Exception occured when pthread_exit() is used.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • platso
    New Member
    • Nov 2007
    • 4

    Exception occured when pthread_exit() is used.

    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.

    This is on Linux platform.


    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_f unction( void *ptr );

    int main()

    {

    pthread_t thread1;

    char *message1 = "Thread 1";

    int iret1;



    iret1 = pthread_create( &thread1, NULL, (void*(*)(void* ))&print_messag e_function, (void*) message1);



    pthread_join( thread1, NULL);





    }



    void print_message_f unction( void *ptr )

    {

    char *message;

    message = (char *) ptr;



    try

    {

    pthread_exit((v oid*) 1);

    }

    catch(...)

    {

    printf("Inside catch...\n");

    }

    }

    CAN ANY ONE TELL ME THE REASON FOR THIS EXCEPTION.
Working...