aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/import.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/import.c')
-rw-r--r--Python/import.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/Python/import.c b/Python/import.c
index ef81f46a4d6..2dd95d8364a 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -418,11 +418,7 @@ remove_module(PyThreadState *tstate, PyObject *name)
Py_ssize_t
_PyImport_GetNextModuleIndex(void)
{
- PyThread_acquire_lock(EXTENSIONS.mutex, WAIT_LOCK);
- LAST_MODULE_INDEX++;
- Py_ssize_t index = LAST_MODULE_INDEX;
- PyThread_release_lock(EXTENSIONS.mutex);
- return index;
+ return _Py_atomic_add_ssize(&LAST_MODULE_INDEX, 1) + 1;
}
static const char *
@@ -882,13 +878,13 @@ gets even messier.
static inline void
extensions_lock_acquire(void)
{
- PyThread_acquire_lock(_PyRuntime.imports.extensions.mutex, WAIT_LOCK);
+ PyMutex_Lock(&_PyRuntime.imports.extensions.mutex);
}
static inline void
extensions_lock_release(void)
{
- PyThread_release_lock(_PyRuntime.imports.extensions.mutex);
+ PyMutex_Unlock(&_PyRuntime.imports.extensions.mutex);
}
/* Magic for extension modules (built-in as well as dynamically