rlib/test/test_rthread.py::TestUsingFramework::()::test_gc_locking
self = <rpython.rlib.test.test_rthread.TestUsingFramework object at 0x7fa25f53ad50>
@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, [])
rlib/test/test_rthread.py:172:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translator/c/test/test_boehm.py:40: in getcompiled
thread=self.use_threads, **extra_options)
translator/c/test/test_genc.py:124: in compile
t.compile_c()
translator/interactive.py:123: in compile_c
self.driver.compile_c()
translator/driver.py:108: in proc
return self.proceed(backend_goal)
translator/driver.py:568: in proceed
result = self._execute(goals, task_skip = self._maybe_skip())
translator/tool/taskengine.py:114: in _execute
res = self._do(goal, taskcallable, *args, **kwds)
translator/driver.py:278: in _do
res = func()
translator/driver.py:435: in task_database_c
database = cbuilder.build_database()
translator/c/genc.py:102: in build_database
self.config.translation.reverse_debugger)
translator/c/database.py:64: in __init__
self.gctransformer = self.gcpolicy.gettransformer(translator, gchooks)
translator/c/gc.py:452: in gettransformer
return shadowstack.ShadowStackFrameworkGCTransformer(translator, gchooks)
memory/gctransform/framework.py:132: in __init__
GCClass, GC_PARAMS = choose_gc_from_config(translator.config)
memory/gc/base.py:593: in choose_gc_from_config
globals(), locals(), [classname])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
"""
# XXX Should find a way to bound the major collection threshold by the
# XXX total addressable size. Maybe by keeping some minimarkpage arenas
# XXX pre-reserved, enough for a few nursery collections? What about
# XXX raw-malloced memory?
import sys
from rpython.rtyper.lltypesystem import lltype, llmemory, llarena, llgroup
from rpython.rtyper.lltypesystem.lloperation import llop
from rpython.rtyper.lltypesystem.llmemory import raw_malloc_usage
from rpython.memory.gc.base import GCBase, MovingGCBase
> from rpython.memory.gc import env
E File "/build_dir/rpython-linux-x86-64/build/rpython/memory/gc/env.py", line 423
E SyntaxError: Non-ASCII character '\xe2' in file /build_dir/rpython-linux-x86-64/build/rpython/memory/gc/env.py on line 423, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
memory/gc/minimark.py:55: SyntaxError
---------- Captured stderr call ----------
[flowgraph] (rpython.translator.c.test.test_genc:66)entry_point
[translation:info] Annotating&simplifying...
[c58187f805f5b00] {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.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.test.test_rthread:145)g
[flowgraph] (rpython.rlib.rthread:272)release_NOAUTO
[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.rthread:199)Lock.release
[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.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)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_write
[flowgraph] (rpython.rlib.rposix:151)_errno_before
[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: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.lltype:2296)scoped_alloc
[flowgraph] (rpython.rtyper.lltypesystem.lltype:2280)ScopedAlloc_Struct timeval { c_tv_sec, c_tv_usec }.__init__
[flowgraph] (rpython.rtyper.lltypesystem.lltype:2286)ScopedAlloc_Struct timeval { c_tv_sec, c_tv_usec }.__enter__
[flowgraph] (rpython.rtyper.lltypesystem.lltype:2289)ScopedAlloc_Struct timeval { c_tv_sec, c_tv_usec }.__exit__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1362)setintfield
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1362)setintfield
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)select
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_select
[flowgraph] (rpython.rlib.rposix:151)_errno_before
[flowgraph] (rpython.rlib.rposix:170)_errno_after
[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
[flowgraph] (?:1)memo__make_scoped_allocator_0
[flowgraph] (?:1)memo__isfunctype_0
[c58187f8c363f00] translation-task}
[translation:info] usession directory: /tmp/pytest/usession-main-18095
[translation:info] already done: Annotating&simplifying
[translation:info] RTyping...
[c58187f8c380280] {translation-task
starting rtype_lltype
[flowgraph] (rpython.rtyper.rclass:1170)ll_runtime_type_info
[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.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:1300)conditional_call
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:11)_ll_list_resize_hint_really_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[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] (rpython.rtyper.lltypesystem.rstr:1306)ll_strnext
[flowgraph] (rpython.rtyper.lltypesystem.rstr:350)ll_strlen
[flowgraph] (rpython.rtyper.rstr:425)ll_str
[flowgraph] (?:1)memo_ll_constant_0
[flowgraph] (?:11)ll_join_strs_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:785)<lambda>
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[flowgraph] (rpython.rlib.jit:294)loop_unrolling_heuristic
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:1037)cast_any_ptr
[flowgraph] (?:2)mallocstr
[flowgraph] (rpython.rtyper.lltypesystem.rstr:36)mallocstr
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (rpython.rtyper.lltypesystem.rstr:78)copy_string_contents
[flowgraph] (?:2)ll_join_strs_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[rtyper] specializing: 100 / 475 blocks (21%)
[flowgraph] (rpython.rtyper.rlist:572)ll_len
[flowgraph] (rpython.rtyper.lltypesystem.rlist:365)ll_length
[rtyper] specializing: 200 / 479 blocks (41%)
[flowgraph] (rpython.rtyper.lltypesystem.module.ll_math:218)ll_math_fmod
[flowgraph] (rpython.rtyper.rint:149)ll_str
[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] (?:11)ll_join_chars_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:821)<lambda>
[flowgraph] (rpython.rtyper.lltypesystem.rstr:820)ll_join_chars
[flowgraph] (rpython.rlib.jit:269)isconstant
[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.rtyper.rlist:912)ll_listdelslice_startonly
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.rlist:539)ll_null_item
[flowgraph] (rpython.rtyper.lltypesystem.rlist:295)_ll_list_resize_le
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (?:2)ll_listdelslice_startonly_trampoline
[flowgraph] (rpython.rtyper.rlist:912)ll_listdelslice_startonly
[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)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[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] (?:2)_ll_list_resize_hint_really_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (?:1)memo__contains_gcptr_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__sizeof_none_0
[flowgraph] (rpython.rtyper.rint:502)ll_int_py_mod_nonnegargs
[rtyper] specializing: 300 / 645 blocks (46%)
[flowgraph] (rpython.rtyper.rclass:870)ll_str
[flowgraph] (rpython.rtyper.lltypesystem.rstr:425)ll_strconcat
[flowgraph] (rpython.rtyper.lltypesystem.rstr:416)ll_length
[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
[rtyper] specializing: 400 / 684 blocks (58%)
[rtyper] specializing: 500 / 684 blocks (73%)
[flowgraph] (rpython.rtyper.rint:525)ll_uint_py_mod
[flowgraph] (rpython.rtyper.rint:434)ll_uint_py_div
[rtyper] specializing: 600 / 688 blocks (87%)
[rtyper] -=- specialized 688 blocks -=-
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)fmod
[flowgraph] (rpython.rtyper.lltypesystem.rffi:2)ccall_fmod
[flowgraph] (rpython.rlib.rposix:151)_errno_before
[flowgraph] (rpython.rlib.rposix:170)_errno_after
[flowgraph] (rpython.rlib.rfloat:567)_likely_raise
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)fabs
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (rpython.rtyper.lltypesystem.module.ll_math:106)ll_math_isfinite
[rtyper] specializing: 700 / 736 blocks (95%)
[flowgraph] (rpython.rtyper.lltypesystem.module.ll_math:91)ll_math_isnan
[flowgraph] (rpython.rtyper.lltypesystem.module.ll_math:98)ll_math_isinf
[rtyper] -=- specialized 48 more blocks -=-
[rtyper] -=- specialized 9 more blocks -=-
[flowgraph] (rpython.rtyper.rclass:1133)ll_issubclass
[flowgraph] (rpython.rtyper.rclass:1130)ll_type
[rtyper] -=- specialized 4 more blocks -=-
[c58187f9ad6f580] translation-task}
[translation:info] usession directory: /tmp/pytest/usession-main-18095
[translation:info] already done: Annotating&simplifying
[translation:info] already done: RTyping
[translation:info] lltype back-end optimisations...
[c58187f9ad8a100] {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 3 cast_pointers in sleep
[backendopt:removecasts] removed 1 cast_pointers in ll_strnext__stringiterPtr
[backendopt:removecasts] removed 1 cast_pointers in ll_join_strs__v6588___simple_call__function_
[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__v6593___simple_call__function_
[backendopt:removecasts] removed 3 cast_pointers in _likely_raise
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining] 0.00 gc_thread_run
[backendopt:inlining] 0.00 scoped_nonmovingbuffer.__init__
[backendopt:inlining] 0.00 isconstant__v6590___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6618___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6579___simple_call__function_
[backendopt:inlining] 0.00 ll_unsigned__Unsigned
[backendopt:inlining] 0.00 memo__ll_prebuilt_empty_array_0
[backendopt:inlining] 0.00 conditional_call__v6613___simple_call__function__star_3
[backendopt:inlining] 0.00 memo__sizeof_none_0
[backendopt:inlining] 0.00 isconstant__v6584___simple_call__function_
[backendopt:inlining] 0.00 fmod__Float_Float_star_2
[backendopt:inlining] 0.00 isvirtual__v6591___simple_call__function_
[backendopt:inlining] 0.00 cast_any_ptr__Ptr_GcStruct_rpy_stringLlT_rpy_stringPtr
[backendopt:inlining] 0.00 scoped_nonmovingbuffer.__enter__
[backendopt:inlining] 0.00 memo_conststr_0
[backendopt:inlining] 0.00 conditional_call__v6578___simple_call__function__star_3
[backendopt:inlining] 0.00 copy_string_to_raw
[backendopt:inlining] 0.00 _get_raw_buf__rpy_string
[backendopt:inlining] 0.00 isconstant__v6583___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6617___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6596___simple_call__function_
[backendopt:inlining] 0.00 get_nonmovingbuffer_ll
[backendopt:inlining] 0.00 RPyThreadStart__bootstrapConst_star_1
[backendopt:inlining] 0.00 RPyThreadLockInit__struct_RPyOpaque_ThreadLockPtr_star_1
[backendopt:inlining] 0.00 isconstant__v6602___simple_call__function_
[backendopt:inlining] 0.00 conditional_call__v6607___simple_call__function__star_3
[backendopt:inlining] 0.00 select__Signed_arrayPtr_arrayPtr_arrayPtr_timevalPtr_star_5
[backendopt:inlining] 0.00 isconstant__v6606___simple_call__function_
[backendopt:inlining] 0.00 memo__sizeof_none_0
[backendopt:inlining] 0.00 isvirtual__v6597___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6605___simple_call__function_
[backendopt:inlining] 0.00 fabs__Float_star_1
[backendopt:inlining] 0.00 isconstant__v6611___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v6612___simple_call__function_
[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 isconstant__v6577___simple_call__function_
[backendopt:inlining] 0.00 memo__ll_prebuilt_empty_array_0
[backendopt:inlining] 0.00 widen__int
[backendopt:inlining] 0.00 isvirtual__v6603___simple_call__function_
[backendopt:inlining] 0.00 __exit____star_3
[backendopt:inlining] 0.00 write__Signed_arrayPtr_Signed_star_3
[backendopt:inlining] 0.00 memo_ll_constant_0
[backendopt:inlining] 0.00 gc_thread_die
[backendopt:inlining] 2.00 ll_length__listPtr
[backendopt:inlining] 2.00 getraw
[backendopt:inlining] 2.00 setraw
[backendopt:inlining] 2.00 setraw
[backendopt:inlining] 2.00 getraw
[backendopt:inlining] 2.00 ll_items__listPtr
[backendopt:inlining] 2.00 ll_strlen__rpy_stringPtr
[backendopt:inlining] 2.00 ll_length__listPtr
[backendopt:inlining] 2.00 get_or_make_raw
[backendopt:inlining] 2.00 ll_uint_py_mod__Unsigned_Unsigned
[backendopt:inlining] 2.00 ll_length__rpy_stringPtr
[backendopt:inlining] 2.00 ll_items__listPtr
[backendopt:inlining] 2.00 ll_int_py_mod_nonnegargs__Signed_Signed
[backendopt:inlining] 2.00 ll_uint_py_div__Unsigned_Unsigned
[backendopt:inlining] 2.00 ScopedAlloc_Struct timeval { c_tv_sec, c_tv_usec }.__enter__
[backendopt:inlining] 2.00 ll_math_isnan__Float
[backendopt:inlining] 2.00 ll_unsigned__Signed
[backendopt:inlining] 2.00 Lock.__init__
[backendopt:inlining] 4.00 Z.__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 ll_math_isfinite__Float
[backendopt:inlining] 4.00 __exit____star_3
[backendopt:inlining] 4.00 setintfield__timevalPtr_c_tv_sec_Signed
[backendopt:inlining] 4.00 setintfield__timevalPtr_c_tv_usec_Signed
[backendopt:inlining] 4.00 loop_unrolling_heuristic__v6589___simple_call__function_
[backendopt:inlining] 5.00 release
[backendopt:inlining] 5.00 allocate
[backendopt:inlining] 2.00 get_or_make_ident
[backendopt:inlining] 5.50 ll_math_isinf__Float
[backendopt:inlining] 6.00 _str_ofs__rpy_string
[backendopt:inlining] 6.00 ScopedAlloc_Struct timeval { c_tv_sec, c_tv_usec }.__init__
[backendopt:inlining] 7.00 mallocstr__Signed
[backendopt:inlining] 7.00 acquire
[backendopt:inlining] 4.00 get_saved_errno
[backendopt:inlining] 7.00 rpython_print_newline
[backendopt:inlining] 2.00 ll_len__listPtr
[backendopt:inlining] 7.00 llrepr_out__int
[backendopt:inlining] 7.00 start_new_thread__bootstrap
[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 release_NOAUTO
[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] 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_Signed
[backendopt:inlining] 6.00 ll_setitem_fast__listPtr_Signed_Char
[backendopt:inlining] 12.00 ll_striter__rpy_stringPtr
[backendopt:inlining] 9.00 acquire_maybe_in_new_thread
[backendopt:inlining] 12.00 scoped_alloc__timeval_False
[backendopt:inlining] 13.00 acquire_NOAUTO
[backendopt:inlining] 13.00 free_nonmovingbuffer_ll
[backendopt:inlining] 9.00 ll_listdelslice_startonly__v6601___simple_call__function_
[backendopt:inlining] 9.00 ll_listdelslice_startonly__v6609___simple_call__function_
[backendopt:inlining] 15.50 ll_strnext__stringiterPtr
[backendopt:inlining] 16.00 Lock.release
[backendopt:inlining] 21.00 ccall_fmod
[backendopt:inlining] 17.00 allocate_lock
[backendopt:inlining] 17.00 ll_append__listPtr_Char
[backendopt:inlining] 17.00 ll_append__listPtr_Signed
[backendopt:inlining] 19.25 _errno_after__v6575___simple_call__function_
[backendopt:inlining] 19.25 _errno_after__v6622___simple_call__function_
[backendopt:inlining] 19.25 _errno_after__v6573___simple_call__function_
[backendopt:inlining] 26.16 ll_join_chars__v6595___simple_call__function_
[backendopt:inlining] 26.16 ll_join_chars__v6599___simple_call__function_
[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] 31.87 _errno_before__v6621___simple_call__function_
[backendopt:inlining] 31.87 _errno_before__v6574___simple_call__function_
[backendopt:inlining] 31.87 _errno_before__v6572___simple_call__function_
[backendopt:inlining] inlined 226 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 '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] 1 simple mallocs removed in 'sleep'
[backendopt:malloc] 8 simple mallocs removed in 'select__Signed_arrayPtr_arrayPtr_arrayPtr_timevalPtr_star_5'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v6578___simple_call__function__star_3'
[backendopt:malloc] 5 simple mallocs removed in 'll_math_fmod__Float_Float'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_le__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v6607___simple_call__function__star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v6613___simple_call__function__star_3'
[backendopt:malloc] 5 simple mallocs removed in 'fmod__Float_Float_star_2'
[backendopt:malloc] 3 simple mallocs removed in '_likely_raise'
[backendopt:malloc] 3 simple mallocs removed in 'fabs__Float_star_1'
[backendopt:malloc] removed 66 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c58187fa2310c00] translation-task}
[translation:info] usession directory: /tmp/pytest/usession-main-18095
[translation:info] already done: Annotating&simplifying
[translation:info] already done: RTyping
[translation:info] already done: lltype back-end optimisations
[translation:info] inserting stack checks...
[c58187fa2343080] {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.
[c58187fa28dd400] translation-task}
[translation:info] Creating database for generating c source...
[c58187fa28e6680] {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
[c58187fa364cb00] translation-task}
builder: rpython-linux-x86-64 build #885
test: rlib/test/test_rthread/py/TestUsingFramework/()/test_gc_locking