U ÂÏ aÕ ã@sNddlZddlZddlZddlZddlZddlZddlZGdd„dejƒZdS)éNc@s:eZdZdd„Zdd„Zejr6dd„Zdd„Zd d „Z d S) ÚArgRefcountTestscCsJd}t |¡}t dd„¡}tdƒD]}|j|Žq$| t |¡|¡dS)N)ÚaÚbÚccWst ¡jj|ŽS©N©ÚgreenletÚ getcurrentÚparentÚswitch)Úargs©r úZC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-96vz34c0\greenlet\tests\test_leaks.pyÚóz0ArgRefcountTests.test_arg_refs..éd)ÚsysÚ getrefcountrÚranger Ú assertEqual)Úselfr Zrefcount_beforeÚgÚir r rÚ test_arg_refs s ÿ  zArgRefcountTests.test_arg_refscCsBi}t dd„¡}tdƒD]}|jf|Žq| t |¡d¡dS)Nc[st ¡jjf|ŽSrr)Úkwargsr r rrrz2ArgRefcountTests.test_kwarg_refs..ré)rrr rrr)rrrrr r rÚtest_kwarg_refssÿ z ArgRefcountTests.test_kwarg_refscCs2dd„}tj|d}| ¡t d¡| ¡dS)NcSst d¡dS)Nçü©ñÒMbP?)ÚtimeÚsleepr r r rÚworker'sz0ArgRefcountTests.recycle_threads..worker©Útargetr)Ú threadingÚThreadÚstartrrÚjoin)rr Útr r rÚrecycle_threads s   z ArgRefcountTests.recycle_threadscs‚g‰‡fdd„}tdƒD]"}tj|d}| ¡| ¡~qt ¡| ¡t ¡t  ¡t ¡ˆD]}|  |ƒdk¡qhdS)Ncsˆ t t ¡¡¡dSr)ÚappendÚweakrefÚrefrr r ©Zggr rr 0sz3ArgRefcountTests.test_threaded_leak..workerrr!© rr#r$r%r&rr r(ÚgcZcollectÚ assertTrue©rr rr'rr r,rÚtest_threaded_leak.s   z#ArgRefcountTests.test_threaded_leakcs‚g‰‡fdd„}tdƒD]"}tj|d}| ¡| ¡~qt ¡| ¡t ¡t  ¡t ¡ˆD]}|  |ƒdk¡qhdS)NcsNg‰t ¡_‡fdd„}tdƒD]}t |¡ ¡q"ˆ t t ¡¡¡dS)Ncsˆ t ¡¡dSr)r)rr r ©Úllr rÚ additionalEszKArgRefcountTests.test_threaded_adv_leak..worker..additionalr)rr r3rr r)r*r+)r4rr,r2rr Bs   z7ArgRefcountTests.test_threaded_adv_leak..workerrr!r-r0r r,rÚtest_threaded_adv_leak@s   z'ArgRefcountTests.test_threaded_adv_leakN) Ú__name__Ú __module__Ú __qualname__rrrZGREENLET_USE_GCr(r1r5r r r rr s  r) Zunittestrr.rr*rr#ZTestCaserr r r rÚs