Author: Armin Rigo <ar...@tunes.org>
Branch: stmgc-c7
Changeset: r74578:d4f40d9d3bff
Date: 2014-11-15 11:48 +0100
http://bitbucket.org/pypy/pypy/changeset/d4f40d9d3bff/

Log:    Tweaks to reduce the diff from default

diff --git a/rpython/rlib/rthread.py b/rpython/rlib/rthread.py
--- a/rpython/rlib/rthread.py
+++ b/rpython/rlib/rthread.py
@@ -79,9 +79,6 @@
 
 
 def allocate_lock():
-    # Add some memory pressure for the size of the lock because it is an
-    # Opaque object
-    rgc.add_memory_pressure(TLOCKP_SIZE)
     return Lock(allocate_ll_lock())
 
 @specialize.arg(0)
@@ -139,9 +136,6 @@
         self._lock = ll_lock
 
     def acquire(self, flag):
-        return self._acquire(flag)    # indirection for the STMLock subclass
-
-    def _acquire(self, flag):
         res = c_thread_acquirelock(self._lock, int(flag))
         res = rffi.cast(lltype.Signed, res)
         return bool(res)
@@ -155,7 +149,7 @@
 
     def release(self):
         # Sanity check: the lock must be locked
-        if self._acquire(False):
+        if self.acquire(False):
             c_thread_releaselock(self._lock)
             raise error("bad lock")
         else:
@@ -204,6 +198,9 @@
     if rffi.cast(lltype.Signed, res) <= 0:
         lltype.free(ll_lock, flavor='raw', track_allocation=False)
         raise error("out of resources")
+    # Add some memory pressure for the size of the lock because it is an
+    # Opaque object
+    rgc.add_memory_pressure(TLOCKP_SIZE)
     return ll_lock
 
 def free_ll_lock(ll_lock):
@@ -322,8 +319,8 @@
                 from rpython.rlib.objectmodel import running_on_llinterp
                 ptr = cast_instance_to_base_ptr(value)
                 if not running_on_llinterp:
-                    if ptr:
-                        gcref = lltype.cast_opaque_ptr(llmemory.GCREF, ptr)
+                    gcref = lltype.cast_opaque_ptr(llmemory.GCREF, ptr)
+                    if gcref:
                         _make_sure_does_not_move(gcref)
                 llop.threadlocalref_set(lltype.Void, opaque_id, ptr)
                 ensure_threadlocal()
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to