Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C - control reaches end of non-void function

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.

like image 330
user3475234 Avatar asked Sep 27 '14 00:09

user3475234


2 Answers

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.

like image 128
Crowman Avatar answered Oct 16 '22 09:10

Crowman


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.

like image 4
Zhi Q. Avatar answered Oct 16 '22 09:10

Zhi Q.