17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(signal_default_int_handler__doc__, 67db96d56Sopenharmony_ci"default_int_handler($module, signalnum, frame, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"The default handler for SIGINT installed by Python.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci"It raises KeyboardInterrupt."); 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci#define SIGNAL_DEFAULT_INT_HANDLER_METHODDEF \ 147db96d56Sopenharmony_ci {"default_int_handler", _PyCFunction_CAST(signal_default_int_handler), METH_FASTCALL, signal_default_int_handler__doc__}, 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_cistatic PyObject * 177db96d56Sopenharmony_cisignal_default_int_handler_impl(PyObject *module, int signalnum, 187db96d56Sopenharmony_ci PyObject *frame); 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_cistatic PyObject * 217db96d56Sopenharmony_cisignal_default_int_handler(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 227db96d56Sopenharmony_ci{ 237db96d56Sopenharmony_ci PyObject *return_value = NULL; 247db96d56Sopenharmony_ci int signalnum; 257db96d56Sopenharmony_ci PyObject *frame; 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("default_int_handler", nargs, 2, 2)) { 287db96d56Sopenharmony_ci goto exit; 297db96d56Sopenharmony_ci } 307db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(args[0]); 317db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 327db96d56Sopenharmony_ci goto exit; 337db96d56Sopenharmony_ci } 347db96d56Sopenharmony_ci frame = args[1]; 357db96d56Sopenharmony_ci return_value = signal_default_int_handler_impl(module, signalnum, frame); 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ciexit: 387db96d56Sopenharmony_ci return return_value; 397db96d56Sopenharmony_ci} 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci#if defined(HAVE_ALARM) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ciPyDoc_STRVAR(signal_alarm__doc__, 447db96d56Sopenharmony_ci"alarm($module, seconds, /)\n" 457db96d56Sopenharmony_ci"--\n" 467db96d56Sopenharmony_ci"\n" 477db96d56Sopenharmony_ci"Arrange for SIGALRM to arrive after the given number of seconds."); 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ci#define SIGNAL_ALARM_METHODDEF \ 507db96d56Sopenharmony_ci {"alarm", (PyCFunction)signal_alarm, METH_O, signal_alarm__doc__}, 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_cistatic long 537db96d56Sopenharmony_cisignal_alarm_impl(PyObject *module, int seconds); 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_cistatic PyObject * 567db96d56Sopenharmony_cisignal_alarm(PyObject *module, PyObject *arg) 577db96d56Sopenharmony_ci{ 587db96d56Sopenharmony_ci PyObject *return_value = NULL; 597db96d56Sopenharmony_ci int seconds; 607db96d56Sopenharmony_ci long _return_value; 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ci seconds = _PyLong_AsInt(arg); 637db96d56Sopenharmony_ci if (seconds == -1 && PyErr_Occurred()) { 647db96d56Sopenharmony_ci goto exit; 657db96d56Sopenharmony_ci } 667db96d56Sopenharmony_ci _return_value = signal_alarm_impl(module, seconds); 677db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 687db96d56Sopenharmony_ci goto exit; 697db96d56Sopenharmony_ci } 707db96d56Sopenharmony_ci return_value = PyLong_FromLong(_return_value); 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ciexit: 737db96d56Sopenharmony_ci return return_value; 747db96d56Sopenharmony_ci} 757db96d56Sopenharmony_ci 767db96d56Sopenharmony_ci#endif /* defined(HAVE_ALARM) */ 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_ci#if defined(HAVE_PAUSE) 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ciPyDoc_STRVAR(signal_pause__doc__, 817db96d56Sopenharmony_ci"pause($module, /)\n" 827db96d56Sopenharmony_ci"--\n" 837db96d56Sopenharmony_ci"\n" 847db96d56Sopenharmony_ci"Wait until a signal arrives."); 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci#define SIGNAL_PAUSE_METHODDEF \ 877db96d56Sopenharmony_ci {"pause", (PyCFunction)signal_pause, METH_NOARGS, signal_pause__doc__}, 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_cistatic PyObject * 907db96d56Sopenharmony_cisignal_pause_impl(PyObject *module); 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_cistatic PyObject * 937db96d56Sopenharmony_cisignal_pause(PyObject *module, PyObject *Py_UNUSED(ignored)) 947db96d56Sopenharmony_ci{ 957db96d56Sopenharmony_ci return signal_pause_impl(module); 967db96d56Sopenharmony_ci} 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci#endif /* defined(HAVE_PAUSE) */ 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ciPyDoc_STRVAR(signal_raise_signal__doc__, 1017db96d56Sopenharmony_ci"raise_signal($module, signalnum, /)\n" 1027db96d56Sopenharmony_ci"--\n" 1037db96d56Sopenharmony_ci"\n" 1047db96d56Sopenharmony_ci"Send a signal to the executing process."); 1057db96d56Sopenharmony_ci 1067db96d56Sopenharmony_ci#define SIGNAL_RAISE_SIGNAL_METHODDEF \ 1077db96d56Sopenharmony_ci {"raise_signal", (PyCFunction)signal_raise_signal, METH_O, signal_raise_signal__doc__}, 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_cistatic PyObject * 1107db96d56Sopenharmony_cisignal_raise_signal_impl(PyObject *module, int signalnum); 1117db96d56Sopenharmony_ci 1127db96d56Sopenharmony_cistatic PyObject * 1137db96d56Sopenharmony_cisignal_raise_signal(PyObject *module, PyObject *arg) 1147db96d56Sopenharmony_ci{ 1157db96d56Sopenharmony_ci PyObject *return_value = NULL; 1167db96d56Sopenharmony_ci int signalnum; 1177db96d56Sopenharmony_ci 1187db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(arg); 1197db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 1207db96d56Sopenharmony_ci goto exit; 1217db96d56Sopenharmony_ci } 1227db96d56Sopenharmony_ci return_value = signal_raise_signal_impl(module, signalnum); 1237db96d56Sopenharmony_ci 1247db96d56Sopenharmony_ciexit: 1257db96d56Sopenharmony_ci return return_value; 1267db96d56Sopenharmony_ci} 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ciPyDoc_STRVAR(signal_signal__doc__, 1297db96d56Sopenharmony_ci"signal($module, signalnum, handler, /)\n" 1307db96d56Sopenharmony_ci"--\n" 1317db96d56Sopenharmony_ci"\n" 1327db96d56Sopenharmony_ci"Set the action for the given signal.\n" 1337db96d56Sopenharmony_ci"\n" 1347db96d56Sopenharmony_ci"The action can be SIG_DFL, SIG_IGN, or a callable Python object.\n" 1357db96d56Sopenharmony_ci"The previous action is returned. See getsignal() for possible return values.\n" 1367db96d56Sopenharmony_ci"\n" 1377db96d56Sopenharmony_ci"*** IMPORTANT NOTICE ***\n" 1387db96d56Sopenharmony_ci"A signal handler function is called with two arguments:\n" 1397db96d56Sopenharmony_ci"the first is the signal number, the second is the interrupted stack frame."); 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_ci#define SIGNAL_SIGNAL_METHODDEF \ 1427db96d56Sopenharmony_ci {"signal", _PyCFunction_CAST(signal_signal), METH_FASTCALL, signal_signal__doc__}, 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_cistatic PyObject * 1457db96d56Sopenharmony_cisignal_signal_impl(PyObject *module, int signalnum, PyObject *handler); 1467db96d56Sopenharmony_ci 1477db96d56Sopenharmony_cistatic PyObject * 1487db96d56Sopenharmony_cisignal_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 1497db96d56Sopenharmony_ci{ 1507db96d56Sopenharmony_ci PyObject *return_value = NULL; 1517db96d56Sopenharmony_ci int signalnum; 1527db96d56Sopenharmony_ci PyObject *handler; 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("signal", nargs, 2, 2)) { 1557db96d56Sopenharmony_ci goto exit; 1567db96d56Sopenharmony_ci } 1577db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(args[0]); 1587db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 1597db96d56Sopenharmony_ci goto exit; 1607db96d56Sopenharmony_ci } 1617db96d56Sopenharmony_ci handler = args[1]; 1627db96d56Sopenharmony_ci return_value = signal_signal_impl(module, signalnum, handler); 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ciexit: 1657db96d56Sopenharmony_ci return return_value; 1667db96d56Sopenharmony_ci} 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ciPyDoc_STRVAR(signal_getsignal__doc__, 1697db96d56Sopenharmony_ci"getsignal($module, signalnum, /)\n" 1707db96d56Sopenharmony_ci"--\n" 1717db96d56Sopenharmony_ci"\n" 1727db96d56Sopenharmony_ci"Return the current action for the given signal.\n" 1737db96d56Sopenharmony_ci"\n" 1747db96d56Sopenharmony_ci"The return value can be:\n" 1757db96d56Sopenharmony_ci" SIG_IGN -- if the signal is being ignored\n" 1767db96d56Sopenharmony_ci" SIG_DFL -- if the default action for the signal is in effect\n" 1777db96d56Sopenharmony_ci" None -- if an unknown handler is in effect\n" 1787db96d56Sopenharmony_ci" anything else -- the callable Python object used as a handler"); 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci#define SIGNAL_GETSIGNAL_METHODDEF \ 1817db96d56Sopenharmony_ci {"getsignal", (PyCFunction)signal_getsignal, METH_O, signal_getsignal__doc__}, 1827db96d56Sopenharmony_ci 1837db96d56Sopenharmony_cistatic PyObject * 1847db96d56Sopenharmony_cisignal_getsignal_impl(PyObject *module, int signalnum); 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_cistatic PyObject * 1877db96d56Sopenharmony_cisignal_getsignal(PyObject *module, PyObject *arg) 1887db96d56Sopenharmony_ci{ 1897db96d56Sopenharmony_ci PyObject *return_value = NULL; 1907db96d56Sopenharmony_ci int signalnum; 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(arg); 1937db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 1947db96d56Sopenharmony_ci goto exit; 1957db96d56Sopenharmony_ci } 1967db96d56Sopenharmony_ci return_value = signal_getsignal_impl(module, signalnum); 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ciexit: 1997db96d56Sopenharmony_ci return return_value; 2007db96d56Sopenharmony_ci} 2017db96d56Sopenharmony_ci 2027db96d56Sopenharmony_ciPyDoc_STRVAR(signal_strsignal__doc__, 2037db96d56Sopenharmony_ci"strsignal($module, signalnum, /)\n" 2047db96d56Sopenharmony_ci"--\n" 2057db96d56Sopenharmony_ci"\n" 2067db96d56Sopenharmony_ci"Return the system description of the given signal.\n" 2077db96d56Sopenharmony_ci"\n" 2087db96d56Sopenharmony_ci"Returns the description of signal *signalnum*, such as \"Interrupt\"\n" 2097db96d56Sopenharmony_ci"for :const:`SIGINT`. Returns :const:`None` if *signalnum* has no\n" 2107db96d56Sopenharmony_ci"description. Raises :exc:`ValueError` if *signalnum* is invalid."); 2117db96d56Sopenharmony_ci 2127db96d56Sopenharmony_ci#define SIGNAL_STRSIGNAL_METHODDEF \ 2137db96d56Sopenharmony_ci {"strsignal", (PyCFunction)signal_strsignal, METH_O, signal_strsignal__doc__}, 2147db96d56Sopenharmony_ci 2157db96d56Sopenharmony_cistatic PyObject * 2167db96d56Sopenharmony_cisignal_strsignal_impl(PyObject *module, int signalnum); 2177db96d56Sopenharmony_ci 2187db96d56Sopenharmony_cistatic PyObject * 2197db96d56Sopenharmony_cisignal_strsignal(PyObject *module, PyObject *arg) 2207db96d56Sopenharmony_ci{ 2217db96d56Sopenharmony_ci PyObject *return_value = NULL; 2227db96d56Sopenharmony_ci int signalnum; 2237db96d56Sopenharmony_ci 2247db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(arg); 2257db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 2267db96d56Sopenharmony_ci goto exit; 2277db96d56Sopenharmony_ci } 2287db96d56Sopenharmony_ci return_value = signal_strsignal_impl(module, signalnum); 2297db96d56Sopenharmony_ci 2307db96d56Sopenharmony_ciexit: 2317db96d56Sopenharmony_ci return return_value; 2327db96d56Sopenharmony_ci} 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci#if defined(HAVE_SIGINTERRUPT) 2357db96d56Sopenharmony_ci 2367db96d56Sopenharmony_ciPyDoc_STRVAR(signal_siginterrupt__doc__, 2377db96d56Sopenharmony_ci"siginterrupt($module, signalnum, flag, /)\n" 2387db96d56Sopenharmony_ci"--\n" 2397db96d56Sopenharmony_ci"\n" 2407db96d56Sopenharmony_ci"Change system call restart behaviour.\n" 2417db96d56Sopenharmony_ci"\n" 2427db96d56Sopenharmony_ci"If flag is False, system calls will be restarted when interrupted by\n" 2437db96d56Sopenharmony_ci"signal sig, else system calls will be interrupted."); 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_ci#define SIGNAL_SIGINTERRUPT_METHODDEF \ 2467db96d56Sopenharmony_ci {"siginterrupt", _PyCFunction_CAST(signal_siginterrupt), METH_FASTCALL, signal_siginterrupt__doc__}, 2477db96d56Sopenharmony_ci 2487db96d56Sopenharmony_cistatic PyObject * 2497db96d56Sopenharmony_cisignal_siginterrupt_impl(PyObject *module, int signalnum, int flag); 2507db96d56Sopenharmony_ci 2517db96d56Sopenharmony_cistatic PyObject * 2527db96d56Sopenharmony_cisignal_siginterrupt(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 2537db96d56Sopenharmony_ci{ 2547db96d56Sopenharmony_ci PyObject *return_value = NULL; 2557db96d56Sopenharmony_ci int signalnum; 2567db96d56Sopenharmony_ci int flag; 2577db96d56Sopenharmony_ci 2587db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("siginterrupt", nargs, 2, 2)) { 2597db96d56Sopenharmony_ci goto exit; 2607db96d56Sopenharmony_ci } 2617db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(args[0]); 2627db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 2637db96d56Sopenharmony_ci goto exit; 2647db96d56Sopenharmony_ci } 2657db96d56Sopenharmony_ci flag = _PyLong_AsInt(args[1]); 2667db96d56Sopenharmony_ci if (flag == -1 && PyErr_Occurred()) { 2677db96d56Sopenharmony_ci goto exit; 2687db96d56Sopenharmony_ci } 2697db96d56Sopenharmony_ci return_value = signal_siginterrupt_impl(module, signalnum, flag); 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_ciexit: 2727db96d56Sopenharmony_ci return return_value; 2737db96d56Sopenharmony_ci} 2747db96d56Sopenharmony_ci 2757db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGINTERRUPT) */ 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ci#if defined(HAVE_SETITIMER) 2787db96d56Sopenharmony_ci 2797db96d56Sopenharmony_ciPyDoc_STRVAR(signal_setitimer__doc__, 2807db96d56Sopenharmony_ci"setitimer($module, which, seconds, interval=0.0, /)\n" 2817db96d56Sopenharmony_ci"--\n" 2827db96d56Sopenharmony_ci"\n" 2837db96d56Sopenharmony_ci"Sets given itimer (one of ITIMER_REAL, ITIMER_VIRTUAL or ITIMER_PROF).\n" 2847db96d56Sopenharmony_ci"\n" 2857db96d56Sopenharmony_ci"The timer will fire after value seconds and after that every interval seconds.\n" 2867db96d56Sopenharmony_ci"The itimer can be cleared by setting seconds to zero.\n" 2877db96d56Sopenharmony_ci"\n" 2887db96d56Sopenharmony_ci"Returns old values as a tuple: (delay, interval)."); 2897db96d56Sopenharmony_ci 2907db96d56Sopenharmony_ci#define SIGNAL_SETITIMER_METHODDEF \ 2917db96d56Sopenharmony_ci {"setitimer", _PyCFunction_CAST(signal_setitimer), METH_FASTCALL, signal_setitimer__doc__}, 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_cistatic PyObject * 2947db96d56Sopenharmony_cisignal_setitimer_impl(PyObject *module, int which, PyObject *seconds, 2957db96d56Sopenharmony_ci PyObject *interval); 2967db96d56Sopenharmony_ci 2977db96d56Sopenharmony_cistatic PyObject * 2987db96d56Sopenharmony_cisignal_setitimer(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 2997db96d56Sopenharmony_ci{ 3007db96d56Sopenharmony_ci PyObject *return_value = NULL; 3017db96d56Sopenharmony_ci int which; 3027db96d56Sopenharmony_ci PyObject *seconds; 3037db96d56Sopenharmony_ci PyObject *interval = NULL; 3047db96d56Sopenharmony_ci 3057db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("setitimer", nargs, 2, 3)) { 3067db96d56Sopenharmony_ci goto exit; 3077db96d56Sopenharmony_ci } 3087db96d56Sopenharmony_ci which = _PyLong_AsInt(args[0]); 3097db96d56Sopenharmony_ci if (which == -1 && PyErr_Occurred()) { 3107db96d56Sopenharmony_ci goto exit; 3117db96d56Sopenharmony_ci } 3127db96d56Sopenharmony_ci seconds = args[1]; 3137db96d56Sopenharmony_ci if (nargs < 3) { 3147db96d56Sopenharmony_ci goto skip_optional; 3157db96d56Sopenharmony_ci } 3167db96d56Sopenharmony_ci interval = args[2]; 3177db96d56Sopenharmony_ciskip_optional: 3187db96d56Sopenharmony_ci return_value = signal_setitimer_impl(module, which, seconds, interval); 3197db96d56Sopenharmony_ci 3207db96d56Sopenharmony_ciexit: 3217db96d56Sopenharmony_ci return return_value; 3227db96d56Sopenharmony_ci} 3237db96d56Sopenharmony_ci 3247db96d56Sopenharmony_ci#endif /* defined(HAVE_SETITIMER) */ 3257db96d56Sopenharmony_ci 3267db96d56Sopenharmony_ci#if defined(HAVE_GETITIMER) 3277db96d56Sopenharmony_ci 3287db96d56Sopenharmony_ciPyDoc_STRVAR(signal_getitimer__doc__, 3297db96d56Sopenharmony_ci"getitimer($module, which, /)\n" 3307db96d56Sopenharmony_ci"--\n" 3317db96d56Sopenharmony_ci"\n" 3327db96d56Sopenharmony_ci"Returns current value of given itimer."); 3337db96d56Sopenharmony_ci 3347db96d56Sopenharmony_ci#define SIGNAL_GETITIMER_METHODDEF \ 3357db96d56Sopenharmony_ci {"getitimer", (PyCFunction)signal_getitimer, METH_O, signal_getitimer__doc__}, 3367db96d56Sopenharmony_ci 3377db96d56Sopenharmony_cistatic PyObject * 3387db96d56Sopenharmony_cisignal_getitimer_impl(PyObject *module, int which); 3397db96d56Sopenharmony_ci 3407db96d56Sopenharmony_cistatic PyObject * 3417db96d56Sopenharmony_cisignal_getitimer(PyObject *module, PyObject *arg) 3427db96d56Sopenharmony_ci{ 3437db96d56Sopenharmony_ci PyObject *return_value = NULL; 3447db96d56Sopenharmony_ci int which; 3457db96d56Sopenharmony_ci 3467db96d56Sopenharmony_ci which = _PyLong_AsInt(arg); 3477db96d56Sopenharmony_ci if (which == -1 && PyErr_Occurred()) { 3487db96d56Sopenharmony_ci goto exit; 3497db96d56Sopenharmony_ci } 3507db96d56Sopenharmony_ci return_value = signal_getitimer_impl(module, which); 3517db96d56Sopenharmony_ci 3527db96d56Sopenharmony_ciexit: 3537db96d56Sopenharmony_ci return return_value; 3547db96d56Sopenharmony_ci} 3557db96d56Sopenharmony_ci 3567db96d56Sopenharmony_ci#endif /* defined(HAVE_GETITIMER) */ 3577db96d56Sopenharmony_ci 3587db96d56Sopenharmony_ci#if defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK) 3597db96d56Sopenharmony_ci 3607db96d56Sopenharmony_ciPyDoc_STRVAR(signal_pthread_sigmask__doc__, 3617db96d56Sopenharmony_ci"pthread_sigmask($module, how, mask, /)\n" 3627db96d56Sopenharmony_ci"--\n" 3637db96d56Sopenharmony_ci"\n" 3647db96d56Sopenharmony_ci"Fetch and/or change the signal mask of the calling thread."); 3657db96d56Sopenharmony_ci 3667db96d56Sopenharmony_ci#define SIGNAL_PTHREAD_SIGMASK_METHODDEF \ 3677db96d56Sopenharmony_ci {"pthread_sigmask", _PyCFunction_CAST(signal_pthread_sigmask), METH_FASTCALL, signal_pthread_sigmask__doc__}, 3687db96d56Sopenharmony_ci 3697db96d56Sopenharmony_cistatic PyObject * 3707db96d56Sopenharmony_cisignal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask); 3717db96d56Sopenharmony_ci 3727db96d56Sopenharmony_cistatic PyObject * 3737db96d56Sopenharmony_cisignal_pthread_sigmask(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 3747db96d56Sopenharmony_ci{ 3757db96d56Sopenharmony_ci PyObject *return_value = NULL; 3767db96d56Sopenharmony_ci int how; 3777db96d56Sopenharmony_ci sigset_t mask; 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("pthread_sigmask", nargs, 2, 2)) { 3807db96d56Sopenharmony_ci goto exit; 3817db96d56Sopenharmony_ci } 3827db96d56Sopenharmony_ci how = _PyLong_AsInt(args[0]); 3837db96d56Sopenharmony_ci if (how == -1 && PyErr_Occurred()) { 3847db96d56Sopenharmony_ci goto exit; 3857db96d56Sopenharmony_ci } 3867db96d56Sopenharmony_ci if (!_Py_Sigset_Converter(args[1], &mask)) { 3877db96d56Sopenharmony_ci goto exit; 3887db96d56Sopenharmony_ci } 3897db96d56Sopenharmony_ci return_value = signal_pthread_sigmask_impl(module, how, mask); 3907db96d56Sopenharmony_ci 3917db96d56Sopenharmony_ciexit: 3927db96d56Sopenharmony_ci return return_value; 3937db96d56Sopenharmony_ci} 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK) */ 3967db96d56Sopenharmony_ci 3977db96d56Sopenharmony_ci#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING) 3987db96d56Sopenharmony_ci 3997db96d56Sopenharmony_ciPyDoc_STRVAR(signal_sigpending__doc__, 4007db96d56Sopenharmony_ci"sigpending($module, /)\n" 4017db96d56Sopenharmony_ci"--\n" 4027db96d56Sopenharmony_ci"\n" 4037db96d56Sopenharmony_ci"Examine pending signals.\n" 4047db96d56Sopenharmony_ci"\n" 4057db96d56Sopenharmony_ci"Returns a set of signal numbers that are pending for delivery to\n" 4067db96d56Sopenharmony_ci"the calling thread."); 4077db96d56Sopenharmony_ci 4087db96d56Sopenharmony_ci#define SIGNAL_SIGPENDING_METHODDEF \ 4097db96d56Sopenharmony_ci {"sigpending", (PyCFunction)signal_sigpending, METH_NOARGS, signal_sigpending__doc__}, 4107db96d56Sopenharmony_ci 4117db96d56Sopenharmony_cistatic PyObject * 4127db96d56Sopenharmony_cisignal_sigpending_impl(PyObject *module); 4137db96d56Sopenharmony_ci 4147db96d56Sopenharmony_cistatic PyObject * 4157db96d56Sopenharmony_cisignal_sigpending(PyObject *module, PyObject *Py_UNUSED(ignored)) 4167db96d56Sopenharmony_ci{ 4177db96d56Sopenharmony_ci return signal_sigpending_impl(module); 4187db96d56Sopenharmony_ci} 4197db96d56Sopenharmony_ci 4207db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING) */ 4217db96d56Sopenharmony_ci 4227db96d56Sopenharmony_ci#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT) 4237db96d56Sopenharmony_ci 4247db96d56Sopenharmony_ciPyDoc_STRVAR(signal_sigwait__doc__, 4257db96d56Sopenharmony_ci"sigwait($module, sigset, /)\n" 4267db96d56Sopenharmony_ci"--\n" 4277db96d56Sopenharmony_ci"\n" 4287db96d56Sopenharmony_ci"Wait for a signal.\n" 4297db96d56Sopenharmony_ci"\n" 4307db96d56Sopenharmony_ci"Suspend execution of the calling thread until the delivery of one of the\n" 4317db96d56Sopenharmony_ci"signals specified in the signal set sigset. The function accepts the signal\n" 4327db96d56Sopenharmony_ci"and returns the signal number."); 4337db96d56Sopenharmony_ci 4347db96d56Sopenharmony_ci#define SIGNAL_SIGWAIT_METHODDEF \ 4357db96d56Sopenharmony_ci {"sigwait", (PyCFunction)signal_sigwait, METH_O, signal_sigwait__doc__}, 4367db96d56Sopenharmony_ci 4377db96d56Sopenharmony_cistatic PyObject * 4387db96d56Sopenharmony_cisignal_sigwait_impl(PyObject *module, sigset_t sigset); 4397db96d56Sopenharmony_ci 4407db96d56Sopenharmony_cistatic PyObject * 4417db96d56Sopenharmony_cisignal_sigwait(PyObject *module, PyObject *arg) 4427db96d56Sopenharmony_ci{ 4437db96d56Sopenharmony_ci PyObject *return_value = NULL; 4447db96d56Sopenharmony_ci sigset_t sigset; 4457db96d56Sopenharmony_ci 4467db96d56Sopenharmony_ci if (!_Py_Sigset_Converter(arg, &sigset)) { 4477db96d56Sopenharmony_ci goto exit; 4487db96d56Sopenharmony_ci } 4497db96d56Sopenharmony_ci return_value = signal_sigwait_impl(module, sigset); 4507db96d56Sopenharmony_ci 4517db96d56Sopenharmony_ciexit: 4527db96d56Sopenharmony_ci return return_value; 4537db96d56Sopenharmony_ci} 4547db96d56Sopenharmony_ci 4557db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT) */ 4567db96d56Sopenharmony_ci 4577db96d56Sopenharmony_ci#if ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)) 4587db96d56Sopenharmony_ci 4597db96d56Sopenharmony_ciPyDoc_STRVAR(signal_valid_signals__doc__, 4607db96d56Sopenharmony_ci"valid_signals($module, /)\n" 4617db96d56Sopenharmony_ci"--\n" 4627db96d56Sopenharmony_ci"\n" 4637db96d56Sopenharmony_ci"Return a set of valid signal numbers on this platform.\n" 4647db96d56Sopenharmony_ci"\n" 4657db96d56Sopenharmony_ci"The signal numbers returned by this function can be safely passed to\n" 4667db96d56Sopenharmony_ci"functions like `pthread_sigmask`."); 4677db96d56Sopenharmony_ci 4687db96d56Sopenharmony_ci#define SIGNAL_VALID_SIGNALS_METHODDEF \ 4697db96d56Sopenharmony_ci {"valid_signals", (PyCFunction)signal_valid_signals, METH_NOARGS, signal_valid_signals__doc__}, 4707db96d56Sopenharmony_ci 4717db96d56Sopenharmony_cistatic PyObject * 4727db96d56Sopenharmony_cisignal_valid_signals_impl(PyObject *module); 4737db96d56Sopenharmony_ci 4747db96d56Sopenharmony_cistatic PyObject * 4757db96d56Sopenharmony_cisignal_valid_signals(PyObject *module, PyObject *Py_UNUSED(ignored)) 4767db96d56Sopenharmony_ci{ 4777db96d56Sopenharmony_ci return signal_valid_signals_impl(module); 4787db96d56Sopenharmony_ci} 4797db96d56Sopenharmony_ci 4807db96d56Sopenharmony_ci#endif /* ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)) */ 4817db96d56Sopenharmony_ci 4827db96d56Sopenharmony_ci#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO) 4837db96d56Sopenharmony_ci 4847db96d56Sopenharmony_ciPyDoc_STRVAR(signal_sigwaitinfo__doc__, 4857db96d56Sopenharmony_ci"sigwaitinfo($module, sigset, /)\n" 4867db96d56Sopenharmony_ci"--\n" 4877db96d56Sopenharmony_ci"\n" 4887db96d56Sopenharmony_ci"Wait synchronously until one of the signals in *sigset* is delivered.\n" 4897db96d56Sopenharmony_ci"\n" 4907db96d56Sopenharmony_ci"Returns a struct_siginfo containing information about the signal."); 4917db96d56Sopenharmony_ci 4927db96d56Sopenharmony_ci#define SIGNAL_SIGWAITINFO_METHODDEF \ 4937db96d56Sopenharmony_ci {"sigwaitinfo", (PyCFunction)signal_sigwaitinfo, METH_O, signal_sigwaitinfo__doc__}, 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_cistatic PyObject * 4967db96d56Sopenharmony_cisignal_sigwaitinfo_impl(PyObject *module, sigset_t sigset); 4977db96d56Sopenharmony_ci 4987db96d56Sopenharmony_cistatic PyObject * 4997db96d56Sopenharmony_cisignal_sigwaitinfo(PyObject *module, PyObject *arg) 5007db96d56Sopenharmony_ci{ 5017db96d56Sopenharmony_ci PyObject *return_value = NULL; 5027db96d56Sopenharmony_ci sigset_t sigset; 5037db96d56Sopenharmony_ci 5047db96d56Sopenharmony_ci if (!_Py_Sigset_Converter(arg, &sigset)) { 5057db96d56Sopenharmony_ci goto exit; 5067db96d56Sopenharmony_ci } 5077db96d56Sopenharmony_ci return_value = signal_sigwaitinfo_impl(module, sigset); 5087db96d56Sopenharmony_ci 5097db96d56Sopenharmony_ciexit: 5107db96d56Sopenharmony_ci return return_value; 5117db96d56Sopenharmony_ci} 5127db96d56Sopenharmony_ci 5137db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO) */ 5147db96d56Sopenharmony_ci 5157db96d56Sopenharmony_ci#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT) 5167db96d56Sopenharmony_ci 5177db96d56Sopenharmony_ciPyDoc_STRVAR(signal_sigtimedwait__doc__, 5187db96d56Sopenharmony_ci"sigtimedwait($module, sigset, timeout, /)\n" 5197db96d56Sopenharmony_ci"--\n" 5207db96d56Sopenharmony_ci"\n" 5217db96d56Sopenharmony_ci"Like sigwaitinfo(), but with a timeout.\n" 5227db96d56Sopenharmony_ci"\n" 5237db96d56Sopenharmony_ci"The timeout is specified in seconds, with floating point numbers allowed."); 5247db96d56Sopenharmony_ci 5257db96d56Sopenharmony_ci#define SIGNAL_SIGTIMEDWAIT_METHODDEF \ 5267db96d56Sopenharmony_ci {"sigtimedwait", _PyCFunction_CAST(signal_sigtimedwait), METH_FASTCALL, signal_sigtimedwait__doc__}, 5277db96d56Sopenharmony_ci 5287db96d56Sopenharmony_cistatic PyObject * 5297db96d56Sopenharmony_cisignal_sigtimedwait_impl(PyObject *module, sigset_t sigset, 5307db96d56Sopenharmony_ci PyObject *timeout_obj); 5317db96d56Sopenharmony_ci 5327db96d56Sopenharmony_cistatic PyObject * 5337db96d56Sopenharmony_cisignal_sigtimedwait(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 5347db96d56Sopenharmony_ci{ 5357db96d56Sopenharmony_ci PyObject *return_value = NULL; 5367db96d56Sopenharmony_ci sigset_t sigset; 5377db96d56Sopenharmony_ci PyObject *timeout_obj; 5387db96d56Sopenharmony_ci 5397db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("sigtimedwait", nargs, 2, 2)) { 5407db96d56Sopenharmony_ci goto exit; 5417db96d56Sopenharmony_ci } 5427db96d56Sopenharmony_ci if (!_Py_Sigset_Converter(args[0], &sigset)) { 5437db96d56Sopenharmony_ci goto exit; 5447db96d56Sopenharmony_ci } 5457db96d56Sopenharmony_ci timeout_obj = args[1]; 5467db96d56Sopenharmony_ci return_value = signal_sigtimedwait_impl(module, sigset, timeout_obj); 5477db96d56Sopenharmony_ci 5487db96d56Sopenharmony_ciexit: 5497db96d56Sopenharmony_ci return return_value; 5507db96d56Sopenharmony_ci} 5517db96d56Sopenharmony_ci 5527db96d56Sopenharmony_ci#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT) */ 5537db96d56Sopenharmony_ci 5547db96d56Sopenharmony_ci#if defined(HAVE_PTHREAD_KILL) 5557db96d56Sopenharmony_ci 5567db96d56Sopenharmony_ciPyDoc_STRVAR(signal_pthread_kill__doc__, 5577db96d56Sopenharmony_ci"pthread_kill($module, thread_id, signalnum, /)\n" 5587db96d56Sopenharmony_ci"--\n" 5597db96d56Sopenharmony_ci"\n" 5607db96d56Sopenharmony_ci"Send a signal to a thread."); 5617db96d56Sopenharmony_ci 5627db96d56Sopenharmony_ci#define SIGNAL_PTHREAD_KILL_METHODDEF \ 5637db96d56Sopenharmony_ci {"pthread_kill", _PyCFunction_CAST(signal_pthread_kill), METH_FASTCALL, signal_pthread_kill__doc__}, 5647db96d56Sopenharmony_ci 5657db96d56Sopenharmony_cistatic PyObject * 5667db96d56Sopenharmony_cisignal_pthread_kill_impl(PyObject *module, unsigned long thread_id, 5677db96d56Sopenharmony_ci int signalnum); 5687db96d56Sopenharmony_ci 5697db96d56Sopenharmony_cistatic PyObject * 5707db96d56Sopenharmony_cisignal_pthread_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 5717db96d56Sopenharmony_ci{ 5727db96d56Sopenharmony_ci PyObject *return_value = NULL; 5737db96d56Sopenharmony_ci unsigned long thread_id; 5747db96d56Sopenharmony_ci int signalnum; 5757db96d56Sopenharmony_ci 5767db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("pthread_kill", nargs, 2, 2)) { 5777db96d56Sopenharmony_ci goto exit; 5787db96d56Sopenharmony_ci } 5797db96d56Sopenharmony_ci if (!PyLong_Check(args[0])) { 5807db96d56Sopenharmony_ci _PyArg_BadArgument("pthread_kill", "argument 1", "int", args[0]); 5817db96d56Sopenharmony_ci goto exit; 5827db96d56Sopenharmony_ci } 5837db96d56Sopenharmony_ci thread_id = PyLong_AsUnsignedLongMask(args[0]); 5847db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(args[1]); 5857db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 5867db96d56Sopenharmony_ci goto exit; 5877db96d56Sopenharmony_ci } 5887db96d56Sopenharmony_ci return_value = signal_pthread_kill_impl(module, thread_id, signalnum); 5897db96d56Sopenharmony_ci 5907db96d56Sopenharmony_ciexit: 5917db96d56Sopenharmony_ci return return_value; 5927db96d56Sopenharmony_ci} 5937db96d56Sopenharmony_ci 5947db96d56Sopenharmony_ci#endif /* defined(HAVE_PTHREAD_KILL) */ 5957db96d56Sopenharmony_ci 5967db96d56Sopenharmony_ci#if (defined(__linux__) && defined(__NR_pidfd_send_signal)) 5977db96d56Sopenharmony_ci 5987db96d56Sopenharmony_ciPyDoc_STRVAR(signal_pidfd_send_signal__doc__, 5997db96d56Sopenharmony_ci"pidfd_send_signal($module, pidfd, signalnum, siginfo=None, flags=0, /)\n" 6007db96d56Sopenharmony_ci"--\n" 6017db96d56Sopenharmony_ci"\n" 6027db96d56Sopenharmony_ci"Send a signal to a process referred to by a pid file descriptor."); 6037db96d56Sopenharmony_ci 6047db96d56Sopenharmony_ci#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF \ 6057db96d56Sopenharmony_ci {"pidfd_send_signal", _PyCFunction_CAST(signal_pidfd_send_signal), METH_FASTCALL, signal_pidfd_send_signal__doc__}, 6067db96d56Sopenharmony_ci 6077db96d56Sopenharmony_cistatic PyObject * 6087db96d56Sopenharmony_cisignal_pidfd_send_signal_impl(PyObject *module, int pidfd, int signalnum, 6097db96d56Sopenharmony_ci PyObject *siginfo, int flags); 6107db96d56Sopenharmony_ci 6117db96d56Sopenharmony_cistatic PyObject * 6127db96d56Sopenharmony_cisignal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 6137db96d56Sopenharmony_ci{ 6147db96d56Sopenharmony_ci PyObject *return_value = NULL; 6157db96d56Sopenharmony_ci int pidfd; 6167db96d56Sopenharmony_ci int signalnum; 6177db96d56Sopenharmony_ci PyObject *siginfo = Py_None; 6187db96d56Sopenharmony_ci int flags = 0; 6197db96d56Sopenharmony_ci 6207db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("pidfd_send_signal", nargs, 2, 4)) { 6217db96d56Sopenharmony_ci goto exit; 6227db96d56Sopenharmony_ci } 6237db96d56Sopenharmony_ci pidfd = _PyLong_AsInt(args[0]); 6247db96d56Sopenharmony_ci if (pidfd == -1 && PyErr_Occurred()) { 6257db96d56Sopenharmony_ci goto exit; 6267db96d56Sopenharmony_ci } 6277db96d56Sopenharmony_ci signalnum = _PyLong_AsInt(args[1]); 6287db96d56Sopenharmony_ci if (signalnum == -1 && PyErr_Occurred()) { 6297db96d56Sopenharmony_ci goto exit; 6307db96d56Sopenharmony_ci } 6317db96d56Sopenharmony_ci if (nargs < 3) { 6327db96d56Sopenharmony_ci goto skip_optional; 6337db96d56Sopenharmony_ci } 6347db96d56Sopenharmony_ci siginfo = args[2]; 6357db96d56Sopenharmony_ci if (nargs < 4) { 6367db96d56Sopenharmony_ci goto skip_optional; 6377db96d56Sopenharmony_ci } 6387db96d56Sopenharmony_ci flags = _PyLong_AsInt(args[3]); 6397db96d56Sopenharmony_ci if (flags == -1 && PyErr_Occurred()) { 6407db96d56Sopenharmony_ci goto exit; 6417db96d56Sopenharmony_ci } 6427db96d56Sopenharmony_ciskip_optional: 6437db96d56Sopenharmony_ci return_value = signal_pidfd_send_signal_impl(module, pidfd, signalnum, siginfo, flags); 6447db96d56Sopenharmony_ci 6457db96d56Sopenharmony_ciexit: 6467db96d56Sopenharmony_ci return return_value; 6477db96d56Sopenharmony_ci} 6487db96d56Sopenharmony_ci 6497db96d56Sopenharmony_ci#endif /* (defined(__linux__) && defined(__NR_pidfd_send_signal)) */ 6507db96d56Sopenharmony_ci 6517db96d56Sopenharmony_ci#ifndef SIGNAL_ALARM_METHODDEF 6527db96d56Sopenharmony_ci #define SIGNAL_ALARM_METHODDEF 6537db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_ALARM_METHODDEF) */ 6547db96d56Sopenharmony_ci 6557db96d56Sopenharmony_ci#ifndef SIGNAL_PAUSE_METHODDEF 6567db96d56Sopenharmony_ci #define SIGNAL_PAUSE_METHODDEF 6577db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_PAUSE_METHODDEF) */ 6587db96d56Sopenharmony_ci 6597db96d56Sopenharmony_ci#ifndef SIGNAL_SIGINTERRUPT_METHODDEF 6607db96d56Sopenharmony_ci #define SIGNAL_SIGINTERRUPT_METHODDEF 6617db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SIGINTERRUPT_METHODDEF) */ 6627db96d56Sopenharmony_ci 6637db96d56Sopenharmony_ci#ifndef SIGNAL_SETITIMER_METHODDEF 6647db96d56Sopenharmony_ci #define SIGNAL_SETITIMER_METHODDEF 6657db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SETITIMER_METHODDEF) */ 6667db96d56Sopenharmony_ci 6677db96d56Sopenharmony_ci#ifndef SIGNAL_GETITIMER_METHODDEF 6687db96d56Sopenharmony_ci #define SIGNAL_GETITIMER_METHODDEF 6697db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_GETITIMER_METHODDEF) */ 6707db96d56Sopenharmony_ci 6717db96d56Sopenharmony_ci#ifndef SIGNAL_PTHREAD_SIGMASK_METHODDEF 6727db96d56Sopenharmony_ci #define SIGNAL_PTHREAD_SIGMASK_METHODDEF 6737db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_PTHREAD_SIGMASK_METHODDEF) */ 6747db96d56Sopenharmony_ci 6757db96d56Sopenharmony_ci#ifndef SIGNAL_SIGPENDING_METHODDEF 6767db96d56Sopenharmony_ci #define SIGNAL_SIGPENDING_METHODDEF 6777db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SIGPENDING_METHODDEF) */ 6787db96d56Sopenharmony_ci 6797db96d56Sopenharmony_ci#ifndef SIGNAL_SIGWAIT_METHODDEF 6807db96d56Sopenharmony_ci #define SIGNAL_SIGWAIT_METHODDEF 6817db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SIGWAIT_METHODDEF) */ 6827db96d56Sopenharmony_ci 6837db96d56Sopenharmony_ci#ifndef SIGNAL_VALID_SIGNALS_METHODDEF 6847db96d56Sopenharmony_ci #define SIGNAL_VALID_SIGNALS_METHODDEF 6857db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_VALID_SIGNALS_METHODDEF) */ 6867db96d56Sopenharmony_ci 6877db96d56Sopenharmony_ci#ifndef SIGNAL_SIGWAITINFO_METHODDEF 6887db96d56Sopenharmony_ci #define SIGNAL_SIGWAITINFO_METHODDEF 6897db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SIGWAITINFO_METHODDEF) */ 6907db96d56Sopenharmony_ci 6917db96d56Sopenharmony_ci#ifndef SIGNAL_SIGTIMEDWAIT_METHODDEF 6927db96d56Sopenharmony_ci #define SIGNAL_SIGTIMEDWAIT_METHODDEF 6937db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_SIGTIMEDWAIT_METHODDEF) */ 6947db96d56Sopenharmony_ci 6957db96d56Sopenharmony_ci#ifndef SIGNAL_PTHREAD_KILL_METHODDEF 6967db96d56Sopenharmony_ci #define SIGNAL_PTHREAD_KILL_METHODDEF 6977db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_PTHREAD_KILL_METHODDEF) */ 6987db96d56Sopenharmony_ci 6997db96d56Sopenharmony_ci#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF 7007db96d56Sopenharmony_ci #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF 7017db96d56Sopenharmony_ci#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */ 7027db96d56Sopenharmony_ci/*[clinic end generated code: output=9b3f9f1ae2ac2b94 input=a9049054013a1b77]*/ 703