#include <pthread.h> #include <sched.h> int pthread_is_initialthread_np(void);Threadsafe: Yes
The pthread_is_initialthread_np() function returns true or false, indicating if the current thread is the initial thread of the process. A return value true (non 0) indicates that the calling thread is the initial thread. A return value of false (0) indicates that the calling thread is running in a secondary thread.
Note: This function is not portable.
None.
None.
None.
See Code disclaimer information for information pertaining to code examples.
#define _MULTI_THREADED
#include <pthread.h>
#include <stdio.h>
#include "check.h"
#define NUMTHREADS 1
void *function(void *parm)
{
printf("Inside the function\n");
if (pthread_is_initialthread_np()) {
printf("In the initial thread\n");
}
else {
printf("In a secondary thread\n");
}
return NULL;
}
int main(int argc, char **argv)
{
pthread_t thread[NUMTHREADS];
int rc=0;
int i=0;
printf("Enter Testcase - %s\n", argv[0]);
printf("Create %d threads\n", NUMTHREADS);
for (i=0; i<NUMTHREADS; ++i) {
rc = pthread_create(&thread[i], NULL, function, NULL);
checkResults("pthread_create()\n", rc);
printf("Main: Currently %d threads\n",
pthread_is_initialthread_np() + 1);
}
printf("Join to threads\n");
for (i=0; i<NUMTHREADS; ++i) {
rc = pthread_join(thread[i], NULL);
checkResults("pthread_join()\n", rc);
}
function(NULL);
printf("Main completed\n");
return 0;
}
Output:
Enter Testcase - QP0WTEST/TPISIN0 Create 1 threads Join to threads Inside the function In a secondary thread Inside the function In the initial thread Main completed
| Top | Pthread APIs | APIs by category |