Author: Remi Meier <remi.me...@gmail.com> Branch: nogil-unsafe-2 Changeset: r90765:d29b5e7da8b0 Date: 2017-03-20 17:42 +0100 http://bitbucket.org/pypy/pypy/changeset/d29b5e7da8b0/
Log: small cleanup diff --git a/rpython/memory/gc/incminimark.py b/rpython/memory/gc/incminimark.py --- a/rpython/memory/gc/incminimark.py +++ b/rpython/memory/gc/incminimark.py @@ -439,10 +439,7 @@ self.updated_old_objects_pointing_to_pinned = False # # Allocate lock(s) - wb_slowpath_lock = lltype.malloc(rthread.TLOCKP.TO, flavor='raw', - track_allocation=False) - rthread.c_thread_lock_init(wb_slowpath_lock) - self.wb_slowpath_lock = wb_slowpath_lock + self.wb_slowpath_lock = rthread.allocate_ll_lock_NOAUTO() # # Allocate a nursery. In case of auto_nursery_size, start by # allocating a very small nursery, enough to do things like look diff --git a/rpython/memory/gc/test/test_thread.py b/rpython/memory/gc/test/test_thread.py --- a/rpython/memory/gc/test/test_thread.py +++ b/rpython/memory/gc/test/test_thread.py @@ -11,7 +11,6 @@ class ThreadSwitcher: all_threadlocals = [incminimark.NURSERY_FREE, incminimark.NURSERY_TOP, - incminimark.NEXT_NUBLOCK, ] def __init__(self, gc): diff --git a/rpython/rlib/rthread.py b/rpython/rlib/rthread.py --- a/rpython/rlib/rthread.py +++ b/rpython/rlib/rthread.py @@ -59,6 +59,9 @@ TLOCKP_SIZE = rffi_platform.sizeof('struct RPyOpaque_ThreadLock', eci) c_thread_lock_init = llexternal('RPyThreadLockInit', [TLOCKP], rffi.INT, releasegil=False) # may add in a global list +c_thread_lock_init_NOAUTO = llexternal('RPyThreadLockInit', [TLOCKP], rffi.INT, + _nowrapper=True) # may add in a global list! + c_thread_lock_dealloc_NOAUTO = llexternal('RPyOpaqueDealloc_ThreadLock', [TLOCKP], lltype.Void, _nowrapper=True) @@ -248,6 +251,13 @@ rgc.add_memory_pressure(TLOCKP_SIZE) return ll_lock + +def allocate_ll_lock_NOAUTO(): + ll_lock = lltype.malloc(TLOCKP.TO, flavor='raw', track_allocation=False) + c_thread_lock_init_NOAUTO(ll_lock) + return ll_lock + + def free_ll_lock(ll_lock): acquire_NOAUTO(ll_lock, False) release_NOAUTO(ll_lock) diff --git a/rpython/translator/c/test/test_nogil.py b/rpython/translator/c/test/test_nogil.py --- a/rpython/translator/c/test/test_nogil.py +++ b/rpython/translator/c/test/test_nogil.py @@ -112,6 +112,7 @@ def worker(): rthread.gc_thread_start() + # these arrays should be old soon: arrays = [] for _ in range(state.arrays): arrays.append([None]) @@ -120,6 +121,7 @@ xi = 0 for i in range(1000): xi = i + # put a young X() in each old array for idx in range(state.arrays): x = X(xi) arrays[idx][0] = x @@ -127,6 +129,7 @@ gc.collect(0) + # check that Xs are not lost for idx in range(state.arrays): assert arrays[idx][0].i == xi _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit