Browse Source

Issue #27776: _PyRandom_Init() doesn't call PyErr_CheckSignals() anymore

Modify py_getrandom() to not call PyErr_CheckSignals() if raise is zero.
_PyRandom_Init() is called very early in the Python initialization, so it's
safer to not call PyErr_CheckSignals().
pull/9921/head
Victor Stinner 10 years ago
parent
commit
cecdd9634b
  1. 9
      Python/random.c

9
Python/random.c

@ -191,10 +191,13 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
}
if (errno == EINTR) {
if (PyErr_CheckSignals()) {
return -1;
if (raise) {
if (PyErr_CheckSignals()) {
return -1;
}
}
/* retry getrandom() */
/* retry getrandom() if it was interrupted by a signal */
continue;
}

Loading…
Cancel
Save