Opened 5 years ago

Last modified 18 months ago

#15615 new enhancement

pthread_getcpuclockid support

Reported by: kallisti5 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System/libroot.so Version: R1/Development
Keywords: pthread Cc:
Blocked By: Blocking:
Platform: All

Description

Seems to exist on all platforms and BSD's except Apple.

Here's an example usage from Mesa:

/* Return the time of a thread's CPU time clock. */
static inline int64_t
u_thread_get_time_nano(thrd_t thread)
{
#if defined(HAVE_PTHREAD) && !defined(__APPLE__)
   struct timespec ts;
   clockid_t cid;

   pthread_getcpuclockid(thread, &cid);
   clock_gettime(cid, &ts);
   return (int64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
#else
   return 0;
#endif
}

Change History (5)

comment:1 by pulkomandy, 5 years ago

One can use get_thread_info() and sum the user_time and kernel_time in the returned struct to get the equivalent on Haiku. We have only microsecond resolution, however.

comment:2 by nephele, 19 months ago

This is also required for mpv.

comment:3 by nephele, 19 months ago

Haiku exposes that we support this with _POSIX_THREAD_CPUTIME in posix/unistd.h

We should probably remove this from the file untill we have implemented it?

comment:4 by cocobean, 18 months ago

NOTE: This is not required for POSIX nor UNIX 2003 compatibility/compliance. We can close this ticket as it is not a bug/nor considered implemented yet.

comment:5 by pulkomandy, 18 months ago

Type: bugenhancement

That makes it an enhancement but there is no need to close it...

Version 0, edited 18 months ago by pulkomandy (next)
Note: See TracTickets for help on using tickets.