check individually for some for sched_ functions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index d4ba9cf..d7a03ce 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4585,6 +4585,8 @@
return PyLong_FromLong(min);
}
+#ifdef HAVE_SCHED_SETSCHEDULER
+
PyDoc_STRVAR(posix_sched_getscheduler__doc__,
"sched_getscheduler(pid)\n\n\
Get the scheduling policy for the process with a PID of *pid*.\n\
@@ -4604,6 +4606,10 @@
return PyLong_FromLong(policy);
}
+#endif
+
+#if defined(HAVE_SCHED_SETSCHEDULER) || defined(HAVE_SCHED_SETPARAM)
+
static PyObject *
sched_param_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
@@ -4656,6 +4662,10 @@
return 1;
}
+#endif
+
+#ifdef HAVE_SCHED_SETSCHEDULER
+
PyDoc_STRVAR(posix_sched_setscheduler__doc__,
"sched_setscheduler(pid, policy, param)\n\n\
Set the scheduling policy, *policy*, for *pid*.\n\
@@ -4677,6 +4687,10 @@
Py_RETURN_NONE;
}
+#endif
+
+#ifdef HAVE_SCHED_SETPARAM
+
PyDoc_STRVAR(posix_sched_getparam__doc__,
"sched_getparam(pid) -> sched_param\n\n\
Returns scheduling parameters for the process with *pid* as an instance of the\n\
@@ -4724,6 +4738,10 @@
Py_RETURN_NONE;
}
+#endif
+
+#ifdef HAVE_SCHED_RR_GET_INTERVAL
+
PyDoc_STRVAR(posix_sched_rr_get_interval__doc__,
"sched_rr_get_interval(pid) -> float\n\n\
Return the round-robin quantum for the process with PID *pid* in seconds.");
@@ -4741,6 +4759,8 @@
return PyFloat_FromDouble((double)interval.tv_sec + 1e-9*interval.tv_nsec);
}
+#endif
+
PyDoc_STRVAR(posix_sched_yield__doc__,
"sched_yield()\n\n\
Voluntarily relinquish the CPU.");
@@ -10054,11 +10074,21 @@
#ifdef HAVE_SCHED_H
{"sched_get_priority_max", posix_sched_get_priority_max, METH_VARARGS, posix_sched_get_priority_max__doc__},
{"sched_get_priority_min", posix_sched_get_priority_min, METH_VARARGS, posix_sched_get_priority_min__doc__},
+#ifdef HAVE_SCHED_SETPARAM
{"sched_getparam", posix_sched_getparam, METH_VARARGS, posix_sched_getparam__doc__},
+#endif
+#ifdef HAVE_SCHED_SETSCHEDULER
{"sched_getscheduler", posix_sched_getscheduler, METH_VARARGS, posix_sched_getscheduler__doc__},
+#endif
+#ifdef HAVE_SCHED_RR_GET_INTERVAL
{"sched_rr_get_interval", posix_sched_rr_get_interval, METH_VARARGS, posix_sched_rr_get_interval__doc__},
+#endif
+#ifdef HAVE_SCHED_SETPARAM
{"sched_setparam", posix_sched_setparam, METH_VARARGS, posix_sched_setparam__doc__},
+#endif
+#ifdef HAVE_SCHED_SETSCHEDULER
{"sched_setscheduler", posix_sched_setscheduler, METH_VARARGS, posix_sched_setscheduler__doc__},
+#endif
{"sched_yield", posix_sched_yield, METH_NOARGS, posix_sched_yield__doc__},
#ifdef HAVE_SCHED_SETAFFINITY
{"sched_setaffinity", posix_sched_setaffinity, METH_VARARGS, posix_sched_setaffinity__doc__},