
    3hh                         S SK r S SKrS SKJr  S SKJr  S SKJr  \R                  " S5        S SKJr  S SK	J
r
  SS	KJr   " S
 S\5      r\S:X  a  \R                  " 5         gg)    N)support)import_helper)threading_helper_interpreters)interpreters)InterpreterError   )TestBasec                       \ rS rSr\R
                  " S5      S 5       r\R                  " SSSS9S 5       r\	R                  " 5       \R                  " SS	SS9S
 5       5       rS rSrg)StressTests   cpuc                     / n[        S5       H)  n[        R                  " 5       nUR                  U5        M+     A[        R
                  " 5         g )Nd   )ranger   createappendr   
gc_collect)selfalive_interps       K/opt/python-3.13.8/usr/lib/python3.13/test/test_interpreters/test_stress.pytest_create_many_sequential'StressTests.test_create_many_sequential   s@    sA!((*FLL          i   F)sizememusedry_runc                 T  ^^ / m[         R                  " 5       mUU4S jn[        U5       Vs/ s H  n[         R                  " US9PM     nn[        R
                  " U5         TR                  5         S S S 5        @[        R                  " 5         g s  snf ! , (       d  f       N*= f)Nc                     > TR                  [        R                  5      (       d  [        e[        R
                  " 5       n TR                  U 5        g )N)waitr   SHORT_TIMEOUTTimeoutErrorr   r   r   )r   r   starts    r   task3StressTests.test_create_many_threaded.<locals>.task    s8    ::g3344""!((*FLL r   target)		threadingEventr   Threadr   start_threadssetr   r   )r   r   r'   r   threadsr   r&   s        @@r   test_create_many_threaded%StressTests.test_create_many_threaded   sw    !	! ;@+F+Q9##40+F++G4IIK 5	 G44s   B$B
B'i   c                   ^^ [         R                  " 5       m[        R                  " 5       nSUR                   S3mUU4S jn[        U5       Vs/ s H  n[         R                  " US9PM     nn[        R                  " U5         TR                  5         S S S 5        [        R                  " 5         g s  snf ! , (       d  f       N)= f)NzOif True:
            import _interpreters
            _interpreters.run_string(z, '1')
            c                  p  > [         R                  " 5       n [         R                   S3nTR                  [        R
                  5      (       d  [        eSnU(       d   U R                  T5        SnU(       d  M  g g ! [         R                   a%  nUR                  R                  S:w  a  e  S nAN?S nAff = f)Nz: interpreter already runningFTzinterpreter already running)r   r   r   r#   r   r$   r%   execExecutionFailedexcinfomsg)r   alreadyrunningsuccessexcscriptr&   s       r   runIStressTests.test_many_threads_running_interp_in_other_interp.<locals>.run7   s    !((*F!-!>!> ? @< <N ::g3344""G#KK' #G g $33 K{{*GG HKs   A< <B5B00B5r)   )r+   r,   r   r   idr   r-   r   r.   r/   r   r   )r   r   r   r=   r   r0   r<   r&   s         @@r   0test_many_threads_running_interp_in_other_interp<StressTests.test_many_threads_running_interp_in_other_interp,   s     !$$&&&,ii[ 1
	#$ :?tEA9##3/E++G4IIK 5 F44s   B6B;;
C	c                     SS K n[        R                  " S5      nU R                  [        5         UR                  SS5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   	_testcapir	   )r   r   import_moduleassertRaisesr   set_nomemoryr   )r   r   rC   s      r   !test_create_interpreter_no_memory-StressTests.test_create_interpreter_no_memoryN   sL    !//<	/0""1a(  " 100s   #A
A* N)__name__
__module____qualname____firstlineno__r   requires_resourcer   
bigmemtestr1   r   requires_working_threadingr@   rG   __static_attributes__rI   r   r   r   r      s    
 u% & S5A B 002S5A B 3@#r   r   __main__)r+   unittesttestr   test.supportr   r   rD   r   test.support.interpretersr   utilsr
   r   rJ   mainrI   r   r   <module>rY      sR       & )   O , % 6 F#( F#R zMMO r   