I'm trying to create a detached thread so I won't need to free the memory allocated for it. Valgrind is used to check for memory leaks. I've used IBM example and written:
void *threadfunc(void *parm)
{
printf("Inside secondary thread\n");
return NULL;
}
int main(int argc, char **argv)
{
pthread_t thread;
int rc=0;
rc = pthread_create(&thread, NULL, threadfunc, NULL);
sleep(1);
rc = pthread_detach(thread);
return 0;
}
this works and doesn't create leaks, but a version without "sleep(1);" doesn't. Why is this sleep(1) needed?