+
    @im                          ^ RI t^ RIt^ RIt^ RIt^RIHt  ! R R]P                  4      t	 ! R R]P                  4      t
 ! R R]P                  4      tR#   ] d    ^ RIt L`i ; i)	    NRWLockc                   ,   a  ] tR t^t o R tR tRtV tR# )Writerc                    \         P                  P                  V 4       Wn        W n        W0n        W@n        WPn        RV n         RV n	        R# )aW  
@param buffer_: common buffer_ shared by the readers and writers
@type buffer_: list
@type rw_lock: L{RWLock}
@param init_sleep_time: sleep time before doing any action
@type init_sleep_time: C{float}
@param sleep_time: sleep time while in critical section
@type sleep_time: C{float}
@param to_write: data that will be appended to the buffer
N)
	threadingThread__init___Writer__buffer_Writer__rw_lock_Writer__init_sleep_time_Writer__sleep_time_Writer__to_write
entry_time	exit_time)selfbuffer_rw_lockinit_sleep_time
sleep_timeto_writes   &&&&&&P/var/www/html/photoedit/myenv/lib/python3.14/site-packages/ecdsa/test_rw_lock.pyr
   Writer.__init__   sG     	!!$' !0&"34    c                   \         P                  ! V P                  4       V P                  P	                  4        \         P                   ! 4       V n        \         P                  ! V P                  4       V P                  P                  V P                  4       \         P                   ! 4       V n
        V P                  P                  4        R # N)timesleepr   r   writer_acquirer   r   r   appendr   r   writer_releaser   s   &r   run
Writer.run(   sv    

4))*%%'))+

4$$%T__-%%'r   )__buffer__init_sleep_time	__rw_lock__sleep_time
__to_writer   r   N__name__
__module____qualname____firstlineno__r
   r#   __static_attributes____classdictcell____classdict__s   @r   r   r      s     50( (r   r   c                   ,   a  ] tR t^2t o R tR tRtV tR# )Readerc                    \         P                  P                  V 4       Wn        W n        W0n        W@n        RV n         RV n         RV n	        R# )a  
@param buffer_: common buffer shared by the readers and writers
@type buffer_: list
@type rw_lock: L{RWLock}
@param init_sleep_time: sleep time before doing any action
@type init_sleep_time: C{float}
@param sleep_time: sleep time while in critical section
@type sleep_time: C{float}
N)
r   r	   r
   _Reader__buffer_Reader__rw_lock_Reader__init_sleep_time_Reader__sleep_timebuffer_readr   r   )r   r   r   r   r   s   &&&&&r   r
   Reader.__init__3   sM     	!!$' !0&C34r   c                   \         P                  ! V P                  4       V P                  P	                  4        \         P                   ! 4       V n        \         P                  ! V P                  4       \        P                  ! V P                  4      V n
        \         P                   ! 4       V n        V P                  P                  4        R # r   )r   r   r8   r7   reader_acquirer   r9   copydeepcopyr6   r:   r   reader_releaser"   s   &r   r#   
Reader.runI   su    

4))*%%'))+

4$$%==7%%'r   )r%   r&   r'   r(   r:   r   r   Nr*   r1   s   @r   r4   r4   2   s     5,( (r   r4   c                   X   a  ] tR t^St o R tR tR tR t]R 4       t	]R 4       t
RtV tR# )	RWLockTestCasec           	     J   V P                  4       w  rpVP                  \        W^ ^ 4      4       VP                  \        WRR^4      4       VP                  \        WRR4      4       VP                  \        WR^ 4      4       V P	                  V4       V P                  . V^ ,          P                  4       V P                  ^.V^,          P                  4       V P                  ^.V^,          P                  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8  4       R# )r   皙?皙?333333?      ?N)
_RWLockTestCase__init_variablesr    r4   r   '_RWLockTestCase__start_and_join_threadsassertEqualr:   
assertTruer   r   r   r   r   threadss   &   r    test_readers_nonexclusive_access/RWLockTestCase.test_readers_nonexclusive_accessT   s<   &*&;&;&=#7vg156vgS!<=vgS9:vgQ78%%g. 	WQZ334!gaj445!gaj445
,,
0E0EEF
--1F1FFG
,,wqz/C/CCDr   c           	        V P                  4       w  rpVP                  \        W^ R^4      4       VP                  \        WR^ ^4      4       VP                  \        WR^ 4      4       V P	                  V4       V P                  ^^.V^,          P                  4       V P                  V^ ,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       R# )r   rF   皙?rE   N
rI   r    r   r4   rJ   rK   r:   rL   r   r   rM   s   &   r   test_writers_exclusive_access,RWLockTestCase.test_writers_exclusive_accessj   s    &*&;&;&=#7vg3:;vgQ:;vgQ78%%g. 	!Q!7!78
,,
0E0EEF
,,
0D0DDEr   c           	        V P                  4       w  rpVP                  \        W^ ^ ^4      4       VP                  \        WRR4      4       VP                  \        WR^ ^4      4       VP                  \        WR^ 4      4       VP                  \        WR^ 4      4       V P	                  V4       V P                  ^.V^,          P                  4       V P                  ^^.V^,          P                  4       V P                  ^^.V^,          P                  4       V P                  V^ ,          P                  V^,          P                  8  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       R# )r   rR   rF   rE   rG   NrS   rM   s   &   r   test_writer_priority#RWLockTestCase.test_writer_priorityy   s~   &*&;&;&=#7vg1a89vgS9:vgQ:;vgQ78vgQ78%%g. 	!gaj445!Q!7!78!Q!7!78
,,wqz/D/DDE
,,
0E0EEF
,,
0E0EEF
,,
0E0EEFr   c           	     t   V P                  4       w  rpVP                  \        W^ ^ ^4      4       VP                  \        WRR4      4       VP                  \        WRR^4      4       VP                  \        WR^ 4      4       VP                  \        WR^ 4      4       VP                  \        WRR^4      4       V P	                  V4       V P                  ^.V^,          P                  4       V P                  . ROV^,          P                  4       V P                  . ROV^,          P                  4       V P                  V^ ,          P                  V^,          P                  8  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       V P                  V^,          P                  V^,          P                  8*  4       R# )	r   rR   g333333?rE   rG   rF   rH   N)         rS   rM   s   &   r   test_many_writers_priority)RWLockTestCase.test_many_writers_priority   s   &*&;&;&=#7vg1a89vgS9:vgS!<=vgQ78vgQ78vgS!<=%%g.
 	!gaj445GAJ$:$:;GAJ$:$:;
,,wqz/D/DDE
,,
0E0EEF
,,
0E0EEF
,,
0E0EEF
,,
0E0EEF
,,
0E0EEF
,,
0E0EEFr   c                 &    . p \        4       p. pWV3# r   r   )r   r   rN   s      r   __init_variablesRWLockTestCase.__init_variables   s    ('**r   c                j    V  F  pVP                  4        K  	  V  F  pVP                  4        K  	  R # r   )startjoin)rN   ts   & r   __start_and_join_threads'RWLockTestCase.__start_and_join_threads   s(    AGGI AFFH r    N)r+   r,   r-   r.   rO   rT   rW   r]   staticmethodrI   rJ   r/   r0   r1   s   @r   rC   rC   S   sE     E,FG*G4 + +  r   rC   )	unittest2unittestImportErrorr   r   r>   _rwlockr   r	   r   r4   TestCaserC   rh   r   r   <module>ro      sj   
      (Y  (F(Y (BaX&& aY  s   A A'&A'