*/
/*[clinic input]
+@critical_section
_random.Random.random
self: self(type="RandomObject *")
static PyObject *
_random_Random_random_impl(RandomObject *self)
-/*[clinic end generated code: output=117ff99ee53d755c input=afb2a59cbbb00349]*/
+/*[clinic end generated code: output=117ff99ee53d755c input=26492e52d26e8b7b]*/
{
uint32_t a=genrand_uint32(self)>>5, b=genrand_uint32(self)>>6;
return PyFloat_FromDouble((a*67108864.0+b)*(1.0/9007199254740992.0));
}
/*[clinic input]
+@critical_section
_random.Random.seed
self: self(type="RandomObject *")
static PyObject *
_random_Random_seed_impl(RandomObject *self, PyObject *n)
-/*[clinic end generated code: output=0fad1e16ba883681 input=78d6ef0d52532a54]*/
+/*[clinic end generated code: output=0fad1e16ba883681 input=46d01d2ba938c7b1]*/
{
if (random_seed(self, n) < 0) {
return NULL;
}
/*[clinic input]
+@critical_section
_random.Random.getstate
self: self(type="RandomObject *")
static PyObject *
_random_Random_getstate_impl(RandomObject *self)
-/*[clinic end generated code: output=bf6cef0c092c7180 input=b937a487928c0e89]*/
+/*[clinic end generated code: output=bf6cef0c092c7180 input=b6621f31eb639694]*/
{
PyObject *state;
PyObject *element;
/*[clinic input]
+@critical_section
_random.Random.setstate
self: self(type="RandomObject *")
[clinic start generated code]*/
static PyObject *
-_random_Random_setstate(RandomObject *self, PyObject *state)
-/*[clinic end generated code: output=fd1c3cd0037b6681 input=b3b4efbb1bc66af8]*/
+_random_Random_setstate_impl(RandomObject *self, PyObject *state)
+/*[clinic end generated code: output=babfc2c2eac6b027 input=358e898ec07469b7]*/
{
int i;
unsigned long element;
}
/*[clinic input]
-
+@critical_section
_random.Random.getrandbits
self: self(type="RandomObject *")
static PyObject *
_random_Random_getrandbits_impl(RandomObject *self, int k)
-/*[clinic end generated code: output=b402f82a2158887f input=8c0e6396dd176fc0]*/
+/*[clinic end generated code: output=b402f82a2158887f input=87603cd60f79f730]*/
{
int i, words;
uint32_t r;
preserve
[clinic start generated code]*/
+#include "pycore_critical_section.h"// Py_BEGIN_CRITICAL_SECTION()
#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_random_Random_random__doc__,
static PyObject *
_random_Random_random(RandomObject *self, PyObject *Py_UNUSED(ignored))
{
- return _random_Random_random_impl(self);
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _random_Random_random_impl(self);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
}
PyDoc_STRVAR(_random_Random_seed__doc__,
}
n = args[0];
skip_optional:
+ Py_BEGIN_CRITICAL_SECTION(self);
return_value = _random_Random_seed_impl(self, n);
+ Py_END_CRITICAL_SECTION();
exit:
return return_value;
static PyObject *
_random_Random_getstate(RandomObject *self, PyObject *Py_UNUSED(ignored))
{
- return _random_Random_getstate_impl(self);
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _random_Random_getstate_impl(self);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
}
PyDoc_STRVAR(_random_Random_setstate__doc__,
#define _RANDOM_RANDOM_SETSTATE_METHODDEF \
{"setstate", (PyCFunction)_random_Random_setstate, METH_O, _random_Random_setstate__doc__},
+static PyObject *
+_random_Random_setstate_impl(RandomObject *self, PyObject *state);
+
+static PyObject *
+_random_Random_setstate(RandomObject *self, PyObject *state)
+{
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _random_Random_setstate_impl(self, state);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
+}
+
PyDoc_STRVAR(_random_Random_getrandbits__doc__,
"getrandbits($self, k, /)\n"
"--\n"
if (k == -1 && PyErr_Occurred()) {
goto exit;
}
+ Py_BEGIN_CRITICAL_SECTION(self);
return_value = _random_Random_getrandbits_impl(self, k);
+ Py_END_CRITICAL_SECTION();
exit:
return return_value;
}
-/*[clinic end generated code: output=5c800a28c2d7b9d1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bf49ece1d341b1b6 input=a9049054013a1b77]*/