Back to index

glibc  2.9
pthread_getcpuclockid.c File Reference
#include <errno.h>
#include <pthreadP.h>
#include <sys/time.h>
#include <tls.h>

Go to the source code of this file.


int pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)

Function Documentation

int pthread_getcpuclockid ( pthread_t  threadid,
clockid_t *  clockid 

Definition at line 26 of file pthread_getcpuclockid.c.

  struct pthread *pd = (struct pthread *) threadid;

  /* Make sure the descriptor is valid.  */
  if (INVALID_TD_P (pd))
    /* Not a valid thread handle.  */
    return ESRCH;

  /* We need to store the thread ID in the CLOCKID variable together
     with a number identifying the clock.  We reserve the low 3 bits
     for the clock ID and the rest for the thread ID.  This is
     problematic if the thread ID is too large.  But 29 bits should be

     If some day more clock IDs are needed the ID part can be
     enlarged.  The IDs are entirely internal.  */
  if (pd->tid >= 1 << (8 * sizeof (*clockid) - CLOCK_IDFIELD_SIZE))
    return ERANGE;

  /* Store the number.  */

  return 0;
  /* We don't have a timer for that.  */
  return ENOENT;