* cygwin.din (clock_getcpuclockid): Export.
(pthread_getcpuclockid): Export. * hires.h (PID_TO_CLOCKID): New macro. (CLOCKID_TO_PID): New macro. (CLOCKID_IS_PROCESS): New macro. (THREADID_TO_CLOCKID): New macro. (CLOCKID_TO_THREADID): New macro. (CLOCKID_IS_THREAD): New macro. * ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadTimes. * posix.sgml (std-notimpl): Add clock_getcpuclockid and pthread_getcpuclockid from here... (std-susv4): ... to here. (std-notes): Remove limitations of clock_getres and clock_gettime. Note limitation of timer_create to CLOCK_REALTIME. * sysconf.cc (sca): Set _SC_CPUTIME to _POSIX_CPUTIME, and _SC_THREAD_CPUTIME to _POSIX_THREAD_CPUTIME. * thread.cc (pthread_getcpuclockid): New function. * timer.cc (timer_create): Set errno to ENOTSUP for CPU-time clocks. * times.cc (clock_gettime): Handle CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID. (clock_getres): Ditto. (clock_settime): Set errno to EPERM for CPU-time clocks. (clock_getcpuclockid): New function. * include/pthread.h (pthread_getcpuclockid): Declare. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
This commit is contained in:
@@ -2510,6 +2510,15 @@ pthread_getconcurrency ()
|
||||
return MT_INTERFACE->concurrency;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
pthread_getcpuclockid (pthread_t thread, clockid_t *clk_id)
|
||||
{
|
||||
if (!pthread::is_good_object (&thread))
|
||||
return (ESRCH);
|
||||
*clk_id = (clockid_t) THREADID_TO_CLOCKID (thread->getsequence_np ());
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* keep this in sync with sched.cc */
|
||||
extern "C" int
|
||||
pthread_getschedparam (pthread_t thread, int *policy,
|
||||
|
Reference in New Issue
Block a user