(ref, name=name)
| 446 | lock = _ModuleLock(name) |
| 447 | |
| 448 | def cb(ref, name=name): |
| 449 | _imp.acquire_lock() |
| 450 | try: |
| 451 | # bpo-31070: Check if another thread created a new lock |
| 452 | # after the previous lock was destroyed |
| 453 | # but before the weakref callback was called. |
| 454 | if _module_locks.get(name) is ref: |
| 455 | del _module_locks[name] |
| 456 | finally: |
| 457 | _imp.release_lock() |
| 458 | |
| 459 | _module_locks[name] = _weakref.ref(lock, cb) |
| 460 | finally: |