mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
gh-108277: Add os.timerfd_create() function (#108382)
Add wrapper for timerfd_create, timerfd_settime, and timerfd_gettime to os module. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
64f158e7b0
commit
de2a4036cb
17 changed files with 1527 additions and 5 deletions
|
|
@ -993,6 +993,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) {
|
|||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(instructions));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intern));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intersection));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(interval));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_running));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isatty));
|
||||
_PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isinstance));
|
||||
|
|
|
|||
|
|
@ -482,6 +482,7 @@ struct _Py_global_strings {
|
|||
STRUCT_FOR_ID(instructions)
|
||||
STRUCT_FOR_ID(intern)
|
||||
STRUCT_FOR_ID(intersection)
|
||||
STRUCT_FOR_ID(interval)
|
||||
STRUCT_FOR_ID(is_running)
|
||||
STRUCT_FOR_ID(isatty)
|
||||
STRUCT_FOR_ID(isinstance)
|
||||
|
|
|
|||
1
Include/internal/pycore_runtime_init_generated.h
generated
1
Include/internal/pycore_runtime_init_generated.h
generated
|
|
@ -991,6 +991,7 @@ extern "C" {
|
|||
INIT_ID(instructions), \
|
||||
INIT_ID(intern), \
|
||||
INIT_ID(intersection), \
|
||||
INIT_ID(interval), \
|
||||
INIT_ID(is_running), \
|
||||
INIT_ID(isatty), \
|
||||
INIT_ID(isinstance), \
|
||||
|
|
|
|||
|
|
@ -143,6 +143,10 @@ PyAPI_FUNC(int) _PyTime_ObjectToTimespec(
|
|||
// Export for '_socket' shared extension.
|
||||
PyAPI_FUNC(_PyTime_t) _PyTime_FromSeconds(int seconds);
|
||||
|
||||
// Create a timestamp from a number of seconds in double.
|
||||
// Export for '_socket' shared extension.
|
||||
PyAPI_FUNC(_PyTime_t) _PyTime_FromSecondsDouble(double seconds, _PyTime_round_t round);
|
||||
|
||||
// Macro to create a timestamp from a number of seconds, no integer overflow.
|
||||
// Only use the macro for small values, prefer _PyTime_FromSeconds().
|
||||
#define _PYTIME_FROMSECONDS(seconds) \
|
||||
|
|
@ -241,7 +245,7 @@ PyAPI_FUNC(int) _PyTime_AsTimevalTime_t(
|
|||
#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE)
|
||||
// Create a timestamp from a timespec structure.
|
||||
// Raise an exception and return -1 on overflow, return 0 on success.
|
||||
extern int _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts);
|
||||
extern int _PyTime_FromTimespec(_PyTime_t *tp, const struct timespec *ts);
|
||||
|
||||
// Convert a timestamp to a timespec structure (nanosecond resolution).
|
||||
// tv_nsec is always positive.
|
||||
|
|
|
|||
|
|
@ -1287,6 +1287,9 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) {
|
|||
string = &_Py_ID(intersection);
|
||||
assert(_PyUnicode_CheckConsistency(string, 1));
|
||||
_PyUnicode_InternInPlace(interp, &string);
|
||||
string = &_Py_ID(interval);
|
||||
assert(_PyUnicode_CheckConsistency(string, 1));
|
||||
_PyUnicode_InternInPlace(interp, &string);
|
||||
string = &_Py_ID(is_running);
|
||||
assert(_PyUnicode_CheckConsistency(string, 1));
|
||||
_PyUnicode_InternInPlace(interp, &string);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue