[pypy-commit] pypy stmgc-c7: Some more transaction-safety.

arigo noreply at buildbot.pypy.org
Thu Mar 27 15:51:12 CET 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c7
Changeset: r70308:c1aa7aff6a7e
Date: 2014-03-27 15:50 +0100
http://bitbucket.org/pypy/pypy/changeset/c1aa7aff6a7e/

Log:	Some more transaction-safety.

diff --git a/rpython/rtyper/module/ll_time.py b/rpython/rtyper/module/ll_time.py
--- a/rpython/rtyper/module/ll_time.py
+++ b/rpython/rtyper/module/ll_time.py
@@ -85,11 +85,13 @@
             if self.GETTIMEOFDAY_NO_TZ:
                 c_gettimeofday = self.llexternal('gettimeofday',
                                  [self.TIMEVALP], rffi.INT,
-                                  _nowrapper=True, releasegil=False)
+                                  _nowrapper=True, releasegil=False,
+                                  transactionsafe=True)
             else:
                 c_gettimeofday = self.llexternal('gettimeofday',
                                  [self.TIMEVALP, rffi.VOIDP], rffi.INT,
-                                  _nowrapper=True, releasegil=False)
+                                  _nowrapper=True, releasegil=False,
+                                  transactionsafe=True)
             c_ftime = None # We have gettimeofday(2), so force ftime(3) OFF.
         else:
             c_gettimeofday = None
@@ -99,12 +101,14 @@
                 self.configure(CConfigForFTime)
                 c_ftime = self.llexternal(FTIME, [lltype.Ptr(self.TIMEB)],
                                           lltype.Void,
-                                          _nowrapper=True, releasegil=False)
+                                          _nowrapper=True, releasegil=False,
+                                          transactionsafe=True)
             else:
                 c_ftime = None    # to not confuse the flow space
 
         c_time = self.llexternal('time', [rffi.VOIDP], rffi.TIME_T,
-                                 _nowrapper=True, releasegil=False)
+                                 _nowrapper=True, releasegil=False,
+                                 transactionsafe=True)
 
         def time_time_llimpl():
             void = lltype.nullptr(rffi.VOIDP.TO)
@@ -142,10 +146,10 @@
             A = lltype.FixedSizeArray(lltype.SignedLongLong, 1)
             QueryPerformanceCounter = self.llexternal(
                 'QueryPerformanceCounter', [lltype.Ptr(A)], lltype.Void,
-                releasegil=False)
+                releasegil=False, transactionsafe=True)
             QueryPerformanceFrequency = self.llexternal(
                 'QueryPerformanceFrequency', [lltype.Ptr(A)], rffi.INT,
-                releasegil=False)
+                releasegil=False, transactionsafe=True)
             class State(object):
                 pass
             state = State()
@@ -168,7 +172,8 @@
             c_getrusage = self.llexternal('getrusage', 
                                           [rffi.INT, lltype.Ptr(RUSAGE)],
                                           lltype.Void,
-                                          releasegil=False)
+                                          releasegil=False,
+                                          transactionsafe=True)
             def time_clock_llimpl():
                 a = lltype.malloc(RUSAGE, flavor='raw')
                 c_getrusage(RUSAGE_SELF, a)


More information about the pypy-commit mailing list