Issue #22117: Use the _PyTime_t API for time.clock_settime()
Remove also the now unused _PyTime_AddDouble() function.
This commit is contained in:
parent
c337838af7
commit
b3b4544070
|
@ -74,11 +74,6 @@ PyAPI_FUNC(int) _PyTime_ObjectToTimespec(
|
||||||
long *nsec,
|
long *nsec,
|
||||||
_PyTime_round_t);
|
_PyTime_round_t);
|
||||||
|
|
||||||
/* Add interval seconds to tv */
|
|
||||||
PyAPI_FUNC(void)
|
|
||||||
_PyTime_AddDouble(_PyTime_timeval *tv, double interval,
|
|
||||||
_PyTime_round_t round);
|
|
||||||
|
|
||||||
/* Initialize time.
|
/* Initialize time.
|
||||||
Return 0 on success, raise an exception and return -1 on error. */
|
Return 0 on success, raise an exception and return -1 on error. */
|
||||||
PyAPI_FUNC(int) _PyTime_Init(void);
|
PyAPI_FUNC(int) _PyTime_Init(void);
|
||||||
|
|
|
@ -166,18 +166,18 @@ time_clock_settime(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
int clk_id;
|
int clk_id;
|
||||||
PyObject *obj;
|
PyObject *obj;
|
||||||
time_t tv_sec;
|
_PyTime_t t;
|
||||||
long tv_nsec;
|
|
||||||
struct timespec tp;
|
struct timespec tp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "iO:clock_settime", &clk_id, &obj))
|
if (!PyArg_ParseTuple(args, "iO:clock_settime", &clk_id, &obj))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (_PyTime_ObjectToTimespec(obj, &tv_sec, &tv_nsec, _PyTime_ROUND_DOWN) == -1)
|
if (_PyTime_FromSecondsObject(&t, obj, _PyTime_ROUND_DOWN) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (_PyTime_AsTimespec(t, &tp) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
tp.tv_sec = tv_sec;
|
|
||||||
tp.tv_nsec = tv_nsec;
|
|
||||||
|
|
||||||
ret = clock_settime((clockid_t)clk_id, &tp);
|
ret = clock_settime((clockid_t)clk_id, &tp);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
|
|
@ -251,23 +251,6 @@ _PyTime_ObjectToTimeval(PyObject *obj, time_t *sec, long *usec,
|
||||||
return _PyTime_ObjectToDenominator(obj, sec, usec, 1e6, round);
|
return _PyTime_ObjectToDenominator(obj, sec, usec, 1e6, round);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
_PyTime_AddDouble(_PyTime_timeval *tv, double interval, _PyTime_round_t round)
|
|
||||||
{
|
|
||||||
_PyTime_timeval tv2;
|
|
||||||
double frac;
|
|
||||||
|
|
||||||
frac = fmod(interval, 1.0);
|
|
||||||
interval = floor(interval);
|
|
||||||
tv2.tv_sec = (long)interval;
|
|
||||||
tv2.tv_usec = (long)(frac*1e6);
|
|
||||||
|
|
||||||
tv->tv_sec += tv2.tv_sec;
|
|
||||||
tv->tv_usec += tv2.tv_usec;
|
|
||||||
tv->tv_sec += (time_t)(tv->tv_usec / SEC_TO_US);
|
|
||||||
tv->tv_usec %= SEC_TO_US;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************** NEW _PyTime_t API **********************/
|
/****************** NEW _PyTime_t API **********************/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue