Home | History | Annotate | Download | only in tests
      1 /** Test whether DRD recognizes LinuxThreads as LinuxThreads and NPTL as
      2  *  NPTL.
      3  */
      4 
      5 
      6 #include <pthread.h>
      7 #include <semaphore.h>
      8 #include <unistd.h>
      9 
     10 
     11 static pid_t s_main_thread_pid;
     12 
     13 
     14 void* thread_func(void* arg)
     15 {
     16   if (s_main_thread_pid == getpid())
     17   {
     18     write(STDOUT_FILENO, "NPTL or non-Linux POSIX threads implementation detected.\n", 57);
     19   }
     20   else
     21   {
     22     write(STDOUT_FILENO, "Detected LinuxThreads as POSIX threads implementation.\n", 55);
     23   }
     24   return 0;
     25 }
     26 
     27 int main(int argc, char** argv)
     28 {
     29   pthread_t threadid;
     30 
     31   s_main_thread_pid = getpid();
     32   pthread_create(&threadid, 0, thread_func, 0);
     33   pthread_join(threadid, 0);
     34   return 0;
     35 }
     36