C - control reaches end of non-void function

4.4k Views Asked by At

I'm writing a threading program, and the pthread_create method requires a void* function.

I'm getting the "control reaches end of non-void function" warning, and I understand why (because I don't have any official return statement)- my question is really just what should I return in this case?

Is it alright to just return NULL? I don't think my return value will affect anything else in my program, but I am just wondering what the standard is for avoiding this warning when programming with multithreaded programs.

2

There are 2 best solutions below

0
On BEST ANSWER

Returning NULL is fine, and is the normal way. Nothing will use the return value unless you write code to use it. NULL is a valid value for void *, and if you don't care what that value is, then the only thing that matters is that it's a valid one.

1
On

try something like this:

#include <pthread.h>

void* you_func( void* param ) {
   // do stuff here ...
   // and terminates as follows:
   pthread_exit( NULL );
}

hope that helps you.