Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

rlib/test/test_rthread.py::TestUsingBoehm::()::test_gc_locking

self = <rpython.rlib.test.test_rthread.TestUsingBoehm object at 0x000001e2d2bc4870>

    @py.test.mark.xfail(platform.machine() == 's390x' or sys.platform == 'darwin',
                        reason='may fail this test under heavy load')
    def test_gc_locking(self):
        import time
        from rpython.rlib.debug import ll_assert
    
        class State:
            pass
        state = State()
    
        class Z:
            def __init__(self, i, j):
                self.i = i
                self.j = j
            def run(self):
                j = self.j
                if self.i > 1:
                    g(self.i-1, self.j * 2)
                    ll_assert(j == self.j, "1: bad j")
                    g(self.i-2, self.j * 2 + 1)
                else:
                    if len(state.answers) % 7 == 5:
                        gc.collect()
                    state.answers.append(self.j)
                ll_assert(j == self.j, "2: bad j")
            run._dont_inline_ = True
    
        def bootstrap():
            # after_extcall() is called before we arrive here.
            # We can't just acquire and release the GIL manually here,
            # because it is unsafe: bootstrap() is called from a rffi
            # callback which checks for and reports exceptions after
            # bootstrap() returns.  The exception checking code must be
            # protected by the GIL too.
            z = state.z
            state.z = None
            state.bootstrapping.release()
            z.run()
            gc_thread_die()
            # before_extcall() is called after we leave here
    
        def g(i, j):
            state.bootstrapping.acquire(True)
            state.z = Z(i, j)
            start_new_thread(bootstrap, ())
    
        def f():
            state.bootstrapping = allocate_lock()
            state.answers = []
            state.finished = 0
    
            g(10, 1)
            done = False
            willing_to_wait_more = 2000
            while not done:
                if not willing_to_wait_more:
                    break
                willing_to_wait_more -= 1
                done = len(state.answers) == expected
    
                print "waitting %d more iterations" % willing_to_wait_more
                time.sleep(0.01)
    
            time.sleep(0.1)
    
            return len(state.answers)
    
        expected = 89
        fn = self.getcompiled(f, [])
>       answers = fn()

rlib\test\test_rthread.py:173: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translator\c\test\test_genc.py:198: in __call__
    return f(*args, **kwds)
translator\c\test\test_genc.py:145: in f
    err=return_stderr)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <rpython.translator.c.genc.CStandaloneBuilder object at 0x000001e2d5302cd0>
args = '', env = None, err = False, expect_crash = False
exe = local('d:\\systemtemp\\pytest\\usession-main-2064\\testing_2\\testing_2.exe')

    def cmdexec(self, args='', env=None, err=False, expect_crash=False, exe=None):
        assert self._compiled
        if sys.platform == 'win32':
            #Prevent opening a dialog box
            import ctypes
            winapi = ctypes.windll.kernel32
            SetErrorMode = winapi.SetErrorMode
            SetErrorMode.argtypes=[ctypes.c_int]
    
            SEM_FAILCRITICALERRORS = 1
            SEM_NOGPFAULTERRORBOX  = 2
            SEM_NOOPENFILEERRORBOX = 0x8000
            flags = SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX \
                    | SEM_NOOPENFILEERRORBOX
            #Since there is no GetErrorMode, do a double Set
            old_mode = SetErrorMode(flags)
            SetErrorMode(old_mode | flags)
        if env is None:
            envrepr = ''
        else:
            envrepr = ' [env=%r]' % (env,)
            env.update(os.environ)
        if exe is None:
            exe = self.executable_name
        log.cmdexec('%s %s%s' % (exe, args, envrepr))
        res = self.translator.platform.execute(exe, args, env=env)
        if sys.platform == 'win32':
            SetErrorMode(old_mode)
        if res.returncode != 0:
            if expect_crash:
                if type(expect_crash) is int and expect_crash != res.returncode:
                    raise Exception("Returned %d, but expected %d" % (
                        res.returncode, expect_crash))
                return res.out, res.err
            print(res.err, file=sys.stderr)
>           raise Exception("Returned %d" % (res.returncode,))
E           Exception: Returned 2147483651

translator\c\genc.py:318: Exception
---------- Captured stderr call ----------
[platform:msg] Updated environment with vsver 160, using x64 True
[flowgraph] (rpython.translator.c.test.test_genc:66)entry_point
[translation:info] Annotating&simplifying...
[c5845bff12cfb80] {translation-task
starting annotate 
[translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy
[flowgraph] (rpython.rlib.test.test_rthread:150)f
[flowgraph] (rpython.rlib.rthread:92)allocate_lock
[flowgraph] (rpython.rlib.rthread:249)allocate_ll_lock
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)RPyThreadLockInit
[flowgraph] (rpython.rtyper.lltypesystem.rffi:2)ccall_RPyThreadLockInit
[flowgraph] (rpython.rlib.rthread:203)Lock.__del__
[flowgraph] (rpython.rlib.rthread:166)Lock.__init__
[flowgraph] (rpython.rlib.rthread:260)free_ll_lock
[flowgraph] (rpython.rlib.rthread:266)acquire_NOAUTO
[flowgraph] (rpython.rlib.rthread:272)release_NOAUTO
[flowgraph] (rpython.rlib.test.test_rthread:145)g
[flowgraph] (rpython.rlib.rthread:169)Lock.acquire
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)RPyThreadAcquireLock
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_RPyThreadAcquireLock
[flowgraph] (rpython.rlib.rgil:160)release
[flowgraph] (rpython.rlib.rgil:171)acquire
[flowgraph] (rpython.rlib.rthread:282)gc_thread_run
[flowgraph] (rpython.rlib.test.test_rthread:115)Z.__init__
[flowgraph] (rpython.rlib.rthread:130)start_new_thread
[flowgraph] (rpython.rlib.rthread:99)ll_start_new_thread
[flowgraph] (rpython.rlib.rgil:153)allocate
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)RPyThreadStart
[flowgraph] (?:6)wrapper
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_RPyThreadStart
[flowgraph] (rpython.rlib.rgil:183)acquire_maybe_in_new_thread
[flowgraph] (rpython.rlib.rthread:124)get_or_make_ident
[flowgraph] (rpython.rlib.rthread:356)get_or_make_raw
[flowgraph] (rpython.rlib.test.test_rthread:131)bootstrap
[flowgraph] (rpython.rlib.rposix:500)write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1427)scoped_nonmovingbuffer.__init__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1431)scoped_nonmovingbuffer.__enter__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:873)get_nonmovingbuffer_ll
[flowgraph] (rpython.rlib.objectmodel:315)we_are_translated_to_c
[flowgraph] (rpython.rlib.rthread:199)Lock.release
[flowgraph] (rpython.rlib.test.test_rthread:118)Z.run
[flowgraph] (rpython.rtyper.lltypesystem.rstr:116)copy_string_to_raw
[flowgraph] (rpython.rtyper.lltypesystem.rstr:63)_get_raw_buf
[flowgraph] (rpython.rtyper.lltypesystem.rstr:57)_str_ofs
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:411)sizeof
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)wrap_write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1433)scoped_nonmovingbuffer.__exit__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:937)free_nonmovingbuffer_ll
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_wrap_write
[flowgraph] (rpython.rlib.rposix:151)_errno_before
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rposix:170)_errno_after
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rthread:297)gc_thread_die
[flowgraph] (rpython.rlib.rposix:430)handle_posix_error
[flowgraph] (rpython.rlib.rarithmetic:139)widen
[flowgraph] (rpython.rlib.rposix:113)get_saved_errno
[flowgraph] (rpython.flowspace.specialcase:76)rpython_print_item
[flowgraph] (rpython.flowspace.specialcase:95)rpython_print_newline
[flowgraph] (rpython.flowspace.specialcase:85)rpython_print_end
[flowgraph] (rpython.rlib.rtime:282)sleep
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)Sleep
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_Sleep
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)Sleep
[flowgraph] (rpython.translator.c.test.test_genc:39)llrepr_out
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__make_wrapper_for_0
[flowgraph] (?:1)memo_offsetof_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__sizeof_none_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__should_widen_type_0
[c5845c031294a80] translation-task}
[translation:info] usession directory: d:\systemtemp\pytest\usession-main-2064
[translation:info] already done: Annotating&simplifying
[translation:info] RTyping...
[c5845c03130ec00] {translation-task
starting rtype_lltype 
[flowgraph] (rpython.rtyper.rclass:1170)ll_runtime_type_info
[flowgraph] (rpython.rtyper.rstr:425)ll_str
[flowgraph] (?:1)memo_ll_constant_0
[flowgraph] (rpython.rtyper.lltypesystem.rlist:357)ll_newemptylist
[flowgraph] (rpython.rtyper.lltypesystem.rlist:351)_ll_new_empty_item_array
[flowgraph] (?:1)memo__ll_prebuilt_empty_array_0
[flowgraph] (rpython.rtyper.rclass:870)ll_str
[flowgraph] (rpython.rtyper.lltypesystem.rstr:425)ll_strconcat
[flowgraph] (rpython.rtyper.lltypesystem.rstr:416)ll_length
[flowgraph] (?:2)mallocstr
[flowgraph] (rpython.rtyper.lltypesystem.rstr:36)mallocstr
[flowgraph] (rpython.rtyper.lltypesystem.rstr:78)copy_string_contents
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:47)ll_int2hex
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:7)ll_unsigned
[flowgraph] (?:1)memo_conststr_0
[flowgraph] (?:1)memo_conststr_0
[flowgraph] (?:1)memo_conststr_0
[flowgraph] (?:1)memo_conststr_0
[flowgraph] (?:11)ll_join_strs_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:785)<lambda>
[flowgraph] (rpython.rlib.jit:294)loop_unrolling_heuristic
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:1037)cast_any_ptr
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (?:2)ll_join_strs_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[flowgraph] (rpython.rtyper.lltypesystem.rstr:350)ll_strlen
[rtyper] specializing: 100 / 391 blocks   (25%)
[flowgraph] (rpython.rtyper.rlist:572)ll_len
[flowgraph] (rpython.rtyper.lltypesystem.rlist:365)ll_length
[flowgraph] (rpython.rtyper.rint:502)ll_int_py_mod_nonnegargs
[flowgraph] (rpython.rtyper.rlist:588)ll_append
[flowgraph] (rpython.rtyper.lltypesystem.rlist:280)_ll_list_resize_ge
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (?:11)_ll_list_resize_hint_really_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (?:2)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:362)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:342)copy_item
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:411)sizeof
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rlist:377)ll_setitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (?:2)_ll_list_resize_hint_really_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (?:1)memo__contains_gcptr_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__sizeof_none_0
[rtyper] specializing: 200 / 476 blocks   (42%)
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:13)ll_int2dec
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:7)ll_unsigned
[flowgraph] (rpython.rtyper.lltypesystem.rstr:1293)ll_striter
[flowgraph] (rpython.rtyper.lltypesystem.rstr:1306)ll_strnext
[flowgraph] (rpython.rtyper.rlist:588)ll_append
[flowgraph] (rpython.rtyper.lltypesystem.rlist:365)ll_length
[flowgraph] (rpython.rtyper.lltypesystem.rlist:280)_ll_list_resize_ge
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (?:11)_ll_list_resize_hint_really_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:351)_ll_new_empty_item_array
[flowgraph] (?:2)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:362)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:342)copy_item
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:2)_ll_list_resize_hint_really_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:377)ll_setitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (?:1)memo__ll_prebuilt_empty_array_0
[flowgraph] (?:1)memo__contains_gcptr_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:11)ll_join_chars_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:821)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rstr:820)ll_join_chars
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (?:2)ll_join_chars_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rstr:820)ll_join_chars
[flowgraph] (?:11)ll_listdelslice_startonly_look_inside_iff
[flowgraph] (rpython.rtyper.rlist:912)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.rlist:912)ll_listdelslice_startonly
[flowgraph] (rpython.rtyper.rlist:539)ll_null_item
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (rpython.rtyper.lltypesystem.rlist:295)_ll_list_resize_le
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:2)ll_listdelslice_startonly_trampoline
[flowgraph] (rpython.rtyper.rlist:912)ll_listdelslice_startonly
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (rpython.rtyper.rint:149)ll_str
[rtyper] specializing: 300 / 646 blocks   (46%)
[rtyper] specializing: 400 / 646 blocks   (61%)
[flowgraph] (rpython.rtyper.rint:434)ll_uint_py_div
[flowgraph] (rpython.rtyper.rint:525)ll_uint_py_mod
[rtyper] specializing: 500 / 650 blocks   (76%)
[rtyper] specializing: 600 / 650 blocks   (92%)
[rtyper] -=- specialized 650 blocks -=-
[flowgraph] (rpython.rtyper.rclass:1133)ll_issubclass
[flowgraph] (rpython.rtyper.rclass:1130)ll_type
[rtyper] -=- specialized 4 more blocks -=-
[c5845c09752db00] translation-task}
[translation:info] usession directory: d:\systemtemp\pytest\usession-main-2064
[translation:info] already done: Annotating&simplifying
[translation:info] already done: RTyping
[translation:info] lltype back-end optimisations...
[c5845c0975a7c80] {translation-task
starting backendopt_lltype 
[backendopt:removecasts] removed 1 cast_pointers in allocate_ll_lock
[backendopt:removecasts] removed 1 cast_pointers in Lock.acquire
[backendopt:removecasts] removed 1 cast_pointers in ll_start_new_thread__bootstrap
[backendopt:removecasts] removed 1 cast_pointers in Lock.release
[backendopt:removecasts] removed 1 cast_pointers in _get_raw_buf__rpy_string
[backendopt:removecasts] removed 3 cast_pointers in handle_posix_error__write
[backendopt:removecasts] removed 1 cast_pointers in copy_string_contents__rpy_stringPtr_rpy_stringPtr_Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in ll_join_strs__v671___simple_call__function_l
[backendopt:removecasts] removed 1 cast_pointers in ll_join_strs__v674___simple_call__function_l
[backendopt:removecasts] removed 1 cast_pointers in ll_strnext__stringiterPtr
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining]    0.00         isconstant__v670___simple_call__function_i
[backendopt:inlining]    0.00                                   __exit____star_3
[backendopt:inlining]    0.00 cast_any_ptr__Ptr_GcStruct_rpy_stringLlT_rpy_stringPtr
[backendopt:inlining]    0.00 conditional_call__v712___simple_call__function_c_star_3
[backendopt:inlining]    0.00         isconstant__v711___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v708___simple_call__function_i
[backendopt:inlining]    0.00          isvirtual__v706___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v704___simple_call__function_i
[backendopt:inlining]    0.00                                 copy_string_to_raw
[backendopt:inlining]    0.00 conditional_call__v678___simple_call__function_c_star_3
[backendopt:inlining]    0.00          isvirtual__v700___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v698___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v676___simple_call__function_i
[backendopt:inlining]    0.00          isvirtual__v672___simple_call__function_i
[backendopt:inlining]    0.00                             get_nonmovingbuffer_ll
[backendopt:inlining]    0.00 RPyThreadAcquireLock__struct_RPyOpaque_ThreadLockPtr_Signed_star_2
[backendopt:inlining]    0.00 copy_string_contents__rpy_stringPtr_rpy_stringPtr_Signed_Signed_Signed
[backendopt:inlining]    0.00                    memo__ll_prebuilt_empty_array_0
[backendopt:inlining]    0.00                              ll_unsigned__Unsigned
[backendopt:inlining]    0.00          wrap_write__Signed_arrayPtr_Signed_star_3
[backendopt:inlining]    0.00         isconstant__v692___simple_call__function_i
[backendopt:inlining]    0.00                   scoped_nonmovingbuffer.__enter__
[backendopt:inlining]    0.00         isconstant__v688___simple_call__function_i
[backendopt:inlining]    0.00 conditional_call__v689___simple_call__function_c_star_3
[backendopt:inlining]    0.00         isconstant__v687___simple_call__function_i
[backendopt:inlining]    0.00                                 memo_ll_constant_0
[backendopt:inlining]    0.00                                      gc_thread_die
[backendopt:inlining]    0.00                                    memo_conststr_0
[backendopt:inlining]    0.00                                 Sleep__UINT_star_1
[backendopt:inlining]    0.00                             Sleep__Unsigned_star_1
[backendopt:inlining]    0.00                    memo__ll_prebuilt_empty_array_0
[backendopt:inlining]    0.00                    scoped_nonmovingbuffer.__init__
[backendopt:inlining]    0.00                                memo__sizeof_none_0
[backendopt:inlining]    0.00              RPyThreadStart__bootstrapConst_star_1
[backendopt:inlining]    0.00         isconstant__v694___simple_call__function_i
[backendopt:inlining]    0.00                           _get_raw_buf__rpy_string
[backendopt:inlining]    0.00         isconstant__v683___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v681___simple_call__function_i
[backendopt:inlining]    0.00         isconstant__v677___simple_call__function_i
[backendopt:inlining]    0.00                                memo__sizeof_none_0
[backendopt:inlining]    0.00                                      gc_thread_run
[backendopt:inlining]    0.00                                         widen__int
[backendopt:inlining]    0.00 RPyThreadLockInit__struct_RPyOpaque_ThreadLockPtr_star_1
[backendopt:inlining]    2.00                                 ll_length__listPtr
[backendopt:inlining]    2.00                           ll_strlen__rpy_stringPtr
[backendopt:inlining]    2.00                                  ll_items__listPtr
[backendopt:inlining]    2.00                                 ll_length__listPtr
[backendopt:inlining]    2.00                                             getraw
[backendopt:inlining]    2.00                  ll_uint_py_mod__Unsigned_Unsigned
[backendopt:inlining]    2.00                  ll_uint_py_div__Unsigned_Unsigned
[backendopt:inlining]    2.00                                ll_unsigned__Signed
[backendopt:inlining]    2.00                                  ll_items__listPtr
[backendopt:inlining]    2.00            ll_int_py_mod_nonnegargs__Signed_Signed
[backendopt:inlining]    2.00                           ll_length__rpy_stringPtr
[backendopt:inlining]    2.00                                             setraw
[backendopt:inlining]    2.00                                             setraw
[backendopt:inlining]    2.00                                             setraw
[backendopt:inlining]    2.00                                             setraw
[backendopt:inlining]    2.00                                             getraw
[backendopt:inlining]    2.00                                             getraw
[backendopt:inlining]    2.00                                             getraw
[backendopt:inlining]    2.00                                    get_or_make_raw
[backendopt:inlining]    2.00                                      Lock.__init__
[backendopt:inlining]    4.00         copy_item__arrayPtr_arrayPtr_Signed_Signed
[backendopt:inlining]    4.00         copy_item__arrayPtr_arrayPtr_Signed_Signed
[backendopt:inlining]    4.00                                         Z.__init__
[backendopt:inlining]    5.00                                            release
[backendopt:inlining]    2.00                                  get_or_make_ident
[backendopt:inlining]    5.00                                           allocate
[backendopt:inlining]    6.00                               _str_ofs__rpy_string
[backendopt:inlining]    7.00                                  mallocstr__Signed
[backendopt:inlining]    2.00                                    ll_len__listPtr
[backendopt:inlining]    7.00                              rpython_print_newline
[backendopt:inlining]    7.00                ll_str__IntegerR_SignedConst_Signed
[backendopt:inlining]    7.00 ll_listdelslice_startonly_look_inside_iff__listPtr_Signed
[backendopt:inlining]    7.00                                    llrepr_out__int
[backendopt:inlining]    4.00                                    get_saved_errno
[backendopt:inlining]    7.00                        start_new_thread__bootstrap
[backendopt:inlining]    7.00                                     release_NOAUTO
[backendopt:inlining]    7.00                            ccall_RPyThreadLockInit
[backendopt:inlining]    7.50                                  mallocstr__Signed
[backendopt:inlining]    8.00                  ll_newemptylist__GcStruct_listLlT
[backendopt:inlining]    9.00 _ll_list_resize_hint_really_look_inside_iff__listPtr_Signed_Bool
[backendopt:inlining]    9.00 ll_join_strs_look_inside_iff__Signed_arrayPtr_Ptr_GcStruct_rpy_stringLlT
[backendopt:inlining]    9.00 _ll_list_resize_hint_really_look_inside_iff__listPtr_Signed_Bool
[backendopt:inlining]    9.00 ll_join_chars_look_inside_iff__Signed_arrayPtr_Ptr_GcStruct_rpy_stringLlT
[backendopt:inlining]    4.00 ll_str__StringR_Ptr_GcStruct_rpy_strin_rpy_stringPtr
[backendopt:inlining]    7.00                                            acquire
[backendopt:inlining]   11.00 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining]   11.00 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining]    6.00               ll_setitem_fast__listPtr_Signed_Char
[backendopt:inlining]    6.00             ll_setitem_fast__listPtr_Signed_Signed
[backendopt:inlining]   12.00                          ll_striter__rpy_stringPtr
[backendopt:inlining]    9.00                        acquire_maybe_in_new_thread
[backendopt:inlining]   13.00                                     acquire_NOAUTO
[backendopt:inlining]   13.00                            free_nonmovingbuffer_ll
[backendopt:inlining]    9.00 ll_listdelslice_startonly__v710___simple_call__function_l
[backendopt:inlining]    9.00 ll_listdelslice_startonly__v705___simple_call__function_l
[backendopt:inlining]   15.50                          ll_strnext__stringiterPtr
[backendopt:inlining]   16.00                                       Lock.release
[backendopt:inlining]    4.00 loop_unrolling_heuristic__v669___simple_call__function_l
[backendopt:inlining]   17.00                                      allocate_lock
[backendopt:inlining]   17.00                            ll_append__listPtr_Char
[backendopt:inlining]   17.00                          ll_append__listPtr_Signed
[backendopt:inlining]   26.16      ll_join_chars__v699___simple_call__function_l
[backendopt:inlining]   26.16      ll_join_chars__v702___simple_call__function_l
[backendopt:inlining]   28.75                                          bootstrap
[backendopt:inlining]   29.00                                       free_ll_lock
[backendopt:inlining]   27.50 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining]   27.50 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining]   28.00                                                  g
[backendopt:inlining]   31.75                          handle_posix_error__write
[backendopt:inlining] inlined 208 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] 3 simple mallocs removed in 'allocate_ll_lock'
[backendopt:malloc] 3 simple mallocs removed in 'RPyThreadLockInit__struct_RPyOpaque_ThreadLockPtr_star_1'
[backendopt:malloc] 5 simple mallocs removed in 'Lock.acquire'
[backendopt:malloc] 5 simple mallocs removed in 'RPyThreadAcquireLock__struct_RPyOpaque_ThreadLockPtr_Signed_star_2'
[backendopt:malloc] 2 simple mallocs removed in 'll_start_new_thread__bootstrap'
[backendopt:malloc] 2 simple mallocs removed in 'RPyThreadStart__bootstrapConst_star_1'
[backendopt:malloc] 1 simple mallocs removed in 'wrapper'
[backendopt:malloc] 3 simple mallocs removed in 'write'
[backendopt:malloc] 2 simple mallocs removed in 'scoped_nonmovingbuffer.__init__'
[backendopt:malloc] 7 simple mallocs removed in 'wrap_write__Signed_arrayPtr_Signed_star_3'
[backendopt:malloc] 1 simple mallocs removed in 'rpython_print_item'
[backendopt:malloc] 1 simple mallocs removed in 'rpython_print_end'
[backendopt:malloc] 5 simple mallocs removed in 'sleep'
[backendopt:malloc] 2 simple mallocs removed in 'Sleep__Unsigned_star_1'
[backendopt:malloc] 3 simple mallocs removed in 'Sleep__UINT_star_1'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v678___simple_call__function_c_star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v689___simple_call__function_c_star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_le__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v712___simple_call__function_c_star_3'
[backendopt:malloc] removed 51 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c5845c0dfb6a800] translation-task}
[translation:info] usession directory: d:\systemtemp\pytest\usession-main-2064
[translation:info] already done: Annotating&simplifying
[translation:info] already done: RTyping
[translation:info] already done: lltype back-end optimisations
[translation:info] inserting stack checks...
[c5845c10d9bec80] {translation-task
starting stackcheckinsertion_lltype 
[flowgraph] (rpython.rlib.rstack:42)stack_check
[flowgraph] (rpython.rlib.rstack:67)stack_check_slowpath
[rtyper] -=- specialized 8 more blocks -=-
[translation:info] inserted 0 stack checks.
[c5845c10f28a700] translation-task}
[translation:info] Creating database for generating c source...
[c5845c10f28a700] {translation-task
starting database_c 
[flowgraph] (rpython.translator.exceptiontransform:100)rpyexc_occurred
[flowgraph] (rpython.translator.exceptiontransform:104)rpyexc_fetch_type
[flowgraph] (rpython.translator.exceptiontransform:107)rpyexc_fetch_value
[flowgraph] (rpython.translator.exceptiontransform:110)rpyexc_clear
[flowgraph] (rpython.translator.exceptiontransform:114)rpyexc_raise
[flowgraph] (rpython.translator.exceptiontransform:128)rpyexc_reraise
[flowgraph] (rpython.translator.exceptiontransform:133)rpyexc_fetch_exception
[flowgraph] (rpython.translator.exceptiontransform:138)rpyexc_restore_exception
[flowgraph] (rpython.translator.exceptiontransform:539)rpyexc_get_exception_addr
[flowgraph] (rpython.translator.exceptiontransform:543)rpyexc_get_exc_value_addr
[flowgraph] (rpython.rtyper.rclass:1173)ll_inst_type
[rtyper] -=- specialized 25 more blocks -=-
[flowgraph] (rpython.memory.gctransform.transform:447)_ll_malloc_fixedsize
[flowgraph] (rpython.memory.gctransform.transform:454)_ll_malloc_fixedsize_zero
[flowgraph] (rpython.memory.gctransform.transform:470)_ll_malloc_varsize_no_length
[flowgraph] (rpython.memory.gctransform.transform:487)ll_malloc_varsize
[flowgraph] (rpython.memory.gctransform.transform:493)_ll_malloc_varsize_no_length_zero
[flowgraph] (rpython.memory.gctransform.transform:447)_ll_malloc_fixedsize
[flowgraph] (rpython.memory.gctransform.transform:447)_ll_malloc_fixedsize
[flowgraph] (rpython.memory.gctransform.transform:470)_ll_malloc_varsize_no_length
[flowgraph] (rpython.memory.gctransform.transform:487)ll_malloc_varsize
[flowgraph] (rpython.memory.gctransform.boehm:249)ll_weakref_create
[flowgraph] (rpython.memory.gctransform.boehm:263)ll_weakref_deref
[flowgraph] (rpython.memory.gctransform.boehm:58)ll_identityhash
[flowgraph] (rpython.memory.gctransform.transform:461)_ll_compute_size
[flowgraph] (rpython.memory.gctransform.boehm:20)<lambda>
[flowgraph] (rpython.memory.gctransform.boehm:24)<lambda>
[flowgraph] (rpython.memory.gctransform.transform:461)_ll_compute_size
[rtyper] specializing: 700 / 751 blocks   (93%)
[rtyper] -=- specialized 64 more blocks -=-
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_fixedsize__Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_fixedsize_zero__Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_varsize_no_length__Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_varsize_no_length_zero__Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_fixedsize__Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_fixedsize__Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_malloc_varsize_no_length__Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in ll_weakref_create__GCREFPtr
[backendopt:removecasts] removed 1 cast_pointers in _ll_compute_size__Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in _ll_compute_size__Signed_Signed_Signed
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining]    0.00             _ll_compute_size__Signed_Signed_Signed
[backendopt:inlining]    0.00             _ll_compute_size__Signed_Signed_Signed
[backendopt:inlining]    2.00                                           _lambda_
[backendopt:inlining]    2.00                                           _lambda_
[backendopt:inlining]   16.50 _ll_malloc_varsize_no_length__Signed_Signed_Signed
[backendopt:inlining]   16.50 _ll_malloc_varsize_no_length__Signed_Signed_Signed
[backendopt:inlining] inlined 8 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[flowgraph] (rpython.translator.c.genc:261)entrypoint_wrapper
[flowgraph] (rpython.rtyper.lltypesystem.rffi:854)charp2str
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1030)charpsize2str
[flowgraph] (rpython.rtyper.lltypesystem.rstr:145)copy_raw_to_string
[flowgraph] (rpython.rtyper.rlist:487)ll_alloc_and_set
[flowgraph] (rpython.rlib.rarithmetic:741)int_force_ge_zero
[flowgraph] (rpython.rtyper.rlist:504)_ll_alloc_and_set_jit
[flowgraph] (rpython.rtyper.rlist:472)_ll_zero_or_null
[flowgraph] (rpython.rtyper.rlist:494)_ll_alloc_and_set_nojit
[flowgraph] (rpython.rtyper.lltypesystem.rlist:324)ll_newlist
[flowgraph] (rpython.rtyper.rlist:516)_ll_alloc_and_clear
[flowgraph] (rpython.rtyper.lltypesystem.rlist:377)ll_setitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (?:11)_ll_alloc_and_set_nonnull_look_inside_iff
[flowgraph] (rpython.rtyper.rlist:528)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.rlist:528)_ll_alloc_and_set_nonnull
[flowgraph] (?:2)_ll_alloc_and_set_nonnull_trampoline
[flowgraph] (rpython.rtyper.rlist:528)_ll_alloc_and_set_nonnull
[flowgraph] (?:1)memo__null_of_type_0
[flowgraph] (rpython.rtyper.rlist:726)ll_setitem_nonneg
[rtyper] specializing: 800 / 829 blocks   (96%)
[rtyper] -=- specialized 78 more blocks -=-
[rtyper] -=- specialized 0 more blocks -=-
[flowgraph] (rpython.memory.gctransform.boehm:128)ll_finalizer
[flowgraph] (rpython.memory.gctransform.support:81)ll_call_destructor
[flowgraph] (rpython.memory.gctransform.support:77)write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)wrap_write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:926)get_nonmovingbuffer_ll_final_null
[rtyper] -=- specialized 32 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining]    0.00                             get_nonmovingbuffer_ll
[backendopt:inlining]    0.00        wrap_write__Signed_SomeString_Signed_star_3
[backendopt:inlining]    0.00                  get_nonmovingbuffer_ll_final_null
[backendopt:inlining]    2.00                           ll_strlen__rpy_stringPtr
[backendopt:inlining]   13.00                            free_nonmovingbuffer_ll
[backendopt:inlining] inlined 10 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] 10 simple mallocs removed in 'write'
[backendopt:malloc] 10 simple mallocs removed in 'wrap_write__Signed_SomeString_Signed_star_3'
[backendopt:malloc] removed 20 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c:database] GC transformer: finished helpers
[c:database] GC transformer: finished tables
[c:database] Inlining GC helpers and postprocessing
[c]      367 nodes  [ array: 45  boehm rtti: 21  func: 88  struct: 213 ]
[c:database] Completed
[translation:info] database for generating C source was created
[c5845c18de0d600] translation-task}
[translation:info] Generating c source...
[c5845c18de87780] {translation-task
starting source_c 
[c:writing] structdef.h
[c:writing] forwarddecl.h
[c:writing] preimpl.h
[c:writing] data_rpython_flowspace.c
[c:writing] data_rpython_memory_gctransform.c
[c:writing] data_rpython_rlib.c
[c:writing] data_rpython_rlib_test.c
[c:writing] data_rpython_rtyper.c
[c:writing] data_rpython_rtyper_lltypesystem.c
[c:writing] data_rpython_translator_c.c
[c:writing] data_rpython_translator_c_test.c
[c:writing] nonfuncnodes.c
[c:writing] data_rpython_rlib_1.c
[c:writing] data_rpython_rlib_test_1.c
[c:writing] implement.c
[c:writing] rpython_flowspace.c
[c:writing] rpython_memory_gctransform.c
[c:writing] rpython_rlib.c
[c:writing] rpython_rlib_test.c
[c:writing] rpython_rtyper.c
[c:writing] rpython_rtyper_lltypesystem.c
[c:writing] rpython_translator.c
[c:writing] rpython_translator_c.c
[c:writing] rpython_translator_c_test.c
[translation:info] written: d:\systemtemp\pytest\usession-main-2064\testing_2\testing_2.c
[c5845c1a988ea00] translation-task}
[translation:info] Compiling c source...
[c5845c1a9908b80] {translation-task
starting compile_c 
[platform:execute] jom.exe  in d:\systemtemp\pytest\usession-main-2064\testing_2
[translation:info] created: d:\systemtemp\pytest\usession-main-2064\testing_2\testing_2.exe
[c5845c4f005ee00] translation-task}
[translation:info] usession directory: d:\systemtemp\pytest\usession-main-2064
[c:cmdexec] d:\systemtemp\pytest\usession-main-2064\testing_2\testing_2.exe
builder: rpython-win-x86-64 build #401
test: rlib/test/test_rthread/py/TestUsingBoehm/()/test_gc_locking