Message330947
I looked at _Py_atomic_address to avoid atomic "serialno++", but we don't have atomic_fetch_add(). We could implement it using a loop and atomic_compare_exchange_strong()... but we don't have atomic_compare_exchange_strong() neither.
I tried to add a mutex, but there are some pratical issues:
* bpo-35388: question about calling Py_Initialize() / Py_Finalize() multiple times
* I modified _PyRuntimeState_Init() to initialize the lock.
_PyRuntimeState_Init() calls PyThread_acquire_lock() which calls PyMem_RawMalloc(). Problem: PyMem_RawMalloc() requires the lock. I worked around the isuse using "if (_PyRuntime.mem.mutex != NULL) {". |
|
Date |
User |
Action |
Args |
2018-12-03 15:19:07 | vstinner | set | recipients:
+ vstinner, xiang.zhang |
2018-12-03 15:19:07 | vstinner | set | messageid: <1543850347.03.0.788709270274.issue31473@psf.upfronthosting.co.za> |
2018-12-03 15:19:07 | vstinner | link | issue31473 messages |
2018-12-03 15:19:06 | vstinner | create | |
|