|
329 | 329 | _PyMem_SetDefaultAllocator(PyMemAllocatorDomain domain,
|
330 | 330 | PyMemAllocatorEx *old_alloc)
|
331 | 331 | {
|
332 |
| - if (ALLOCATORS_MUTEX == NULL) { |
333 |
| - /* The runtime must be initializing. */ |
334 |
| - return set_default_allocator_unlocked(domain, pydebug, old_alloc); |
335 |
| - } |
336 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 332 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
337 | 333 | int res = set_default_allocator_unlocked(domain, pydebug, old_alloc);
|
338 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 334 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
339 | 335 | return res;
|
340 | 336 | }
|
341 | 337 |
|
@@ -467,9 +463,9 @@ set_up_allocators_unlocked(PyMemAllocatorName allocator)
|
467 | 463 | int
|
468 | 464 | _PyMem_SetupAllocators(PyMemAllocatorName allocator)
|
469 | 465 | {
|
470 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 466 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
471 | 467 | int res = set_up_allocators_unlocked(allocator);
|
472 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 468 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
473 | 469 | return res;
|
474 | 470 | }
|
475 | 471 |
|
@@ -554,9 +550,9 @@ get_current_allocator_name_unlocked(void)
|
554 | 550 | const char*
|
555 | 551 | _PyMem_GetCurrentAllocatorName(void)
|
556 | 552 | {
|
557 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 553 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
558 | 554 | const char *name = get_current_allocator_name_unlocked();
|
559 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 555 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
560 | 556 | return name;
|
561 | 557 | }
|
562 | 558 |
|
@@ -653,14 +649,9 @@ set_up_debug_hooks_unlocked(void)
|
653 | 649 | void
|
654 | 650 | PyMem_SetupDebugHooks(void)
|
655 | 651 | {
|
656 |
| - if (ALLOCATORS_MUTEX == NULL) { |
657 |
| - /* The runtime must not be completely initialized yet. */ |
658 |
| - set_up_debug_hooks_unlocked(); |
659 |
| - return; |
660 |
| - } |
661 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 652 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
662 | 653 | set_up_debug_hooks_unlocked();
|
663 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 654 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
664 | 655 | }
|
665 | 656 |
|
666 | 657 | static void
|
@@ -696,53 +687,33 @@ set_allocator_unlocked(PyMemAllocatorDomain domain, PyMemAllocatorEx *allocator)
|
696 | 687 | void
|
697 | 688 | PyMem_GetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx *allocator)
|
698 | 689 | {
|
699 |
| - if (ALLOCATORS_MUTEX == NULL) { |
700 |
| - /* The runtime must not be completely initialized yet. */ |
701 |
| - get_allocator_unlocked(domain, allocator); |
702 |
| - return; |
703 |
| - } |
704 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 690 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
705 | 691 | get_allocator_unlocked(domain, allocator);
|
706 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 692 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
707 | 693 | }
|
708 | 694 |
|
709 | 695 | void
|
710 | 696 | PyMem_SetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx *allocator)
|
711 | 697 | {
|
712 |
| - if (ALLOCATORS_MUTEX == NULL) { |
713 |
| - /* The runtime must not be completely initialized yet. */ |
714 |
| - set_allocator_unlocked(domain, allocator); |
715 |
| - return; |
716 |
| - } |
717 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 698 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
718 | 699 | set_allocator_unlocked(domain, allocator);
|
719 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 700 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
720 | 701 | }
|
721 | 702 |
|
722 | 703 | void
|
723 | 704 | PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator)
|
724 | 705 | {
|
725 |
| - if (ALLOCATORS_MUTEX == NULL) { |
726 |
| - /* The runtime must not be completely initialized yet. */ |
727 |
| - *allocator = _PyObject_Arena; |
728 |
| - return; |
729 |
| - } |
730 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 706 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
731 | 707 | *allocator = _PyObject_Arena;
|
732 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 708 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
733 | 709 | }
|
734 | 710 |
|
735 | 711 | void
|
736 | 712 | PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator)
|
737 | 713 | {
|
738 |
| - if (ALLOCATORS_MUTEX == NULL) { |
739 |
| - /* The runtime must not be completely initialized yet. */ |
740 |
| - _PyObject_Arena = *allocator; |
741 |
| - return; |
742 |
| - } |
743 |
| - PyThread_acquire_lock(ALLOCATORS_MUTEX, WAIT_LOCK); |
| 714 | + PyMutex_Lock(&ALLOCATORS_MUTEX); |
744 | 715 | _PyObject_Arena = *allocator;
|
745 |
| - PyThread_release_lock(ALLOCATORS_MUTEX); |
| 716 | + PyMutex_Unlock(&ALLOCATORS_MUTEX); |
746 | 717 | }
|
747 | 718 |
|
748 | 719 |
|
|
0 commit comments