Message330947
| Author |
vstinner |
| Recipients |
vstinner, xiang.zhang |
| Date |
2018年12月03日.15:19:06 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1543850347.03.0.788709270274.issue31473@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
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) {". |
|
History
|
|---|
| 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 |
|