-í
ç¶<c       sâ    d  Z    d k Z  d k Z  d k Z  d k Z  d k Z  e Z  [  e i Z  e i Z	  [  e i
 Z  e i Z  e i Z  e i Z  [  e i Z  [  e i Z  [ ! d Z # e o % d f  d „  ƒ  YZ n 5 d f  d „  ƒ  YZ > e Z @ d „  Z C d e f d „  ƒ  YZ ‡ d	 „  Z Š d
 e f d „  ƒ  YZ õ d „  Z ø d e f d „  ƒ  YZ d „  Z "d e f d „  ƒ  YZ  .d „  Z! 1d e f d „  ƒ  YZ" Od a# Pd d „ Z$ Ve ƒ  Z% Wh  Z& Xh  Z' ]d e f d „  ƒ  YZ( êd „  Z) íd e( f d „  ƒ  YZ* 
d e( f d „  ƒ  YZ+ %d „  Z, 3d e( f d  „  ƒ  YZ- Ed! „  Z. Ld" „  Z/ Rd# „  Z0 [e+ ƒ  `d$ „  Z1 ³e2 d% j o ´e1 ƒ  n d S(&   sL   Proposed new threading module, emulating a subset of Java's threading model.Ni    s   _Verbosec      s&   % t  Z ' e d „ Z , d „  Z RS(   Nc    s0   ' ( | t j o ) t } n * | |  _ d  S(   N(   s   verboses   Nones   _VERBOSEs   selfs   _Verbose__verbose(   s   selfs   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__' s   c    sT   , - |  i o@ . | | } / d t ƒ  i ƒ  | f } 1 t i i | ƒ n d  S(   Ns   %s: %s
(	   s   selfs   _Verbose__verboses   formats   argss   currentThreads   getNames   _syss   stderrs   write(   s   selfs   formats   args(    (    s   /usr/lib/python2.2/threading.pys   _note, s   (   s   __name__s
   __module__s   Nones   __init__s   _note(    (    (    s   /usr/lib/python2.2/threading.pys   _Verbose% s   	c      s&   5 t  Z 6 e d „ Z 8 d „  Z RS(   Nc    s
   6 7 d  S(   N(    (   s   selfs   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__6 s   c    s
   8 9 d  S(   N(    (   s   selfs   args(    (    s   /usr/lib/python2.2/threading.pys   _note8 s   (   s   __name__s
   __module__s   Nones   __init__s   _note(    (    (    s   /usr/lib/python2.2/threading.pys   _Verbose5 s   	c     s   @ A t  t |  | ƒ Sd  S(   N(   s   applys   _RLocks   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys   RLock@ s   s   _RLockc      se   C t  Z E e d „ Z K d „  Z Q d d „ Z c d „  Z r d „  Z y d „  Z ƒ d „  Z	 RS(	   Nc    sA   E F t  i |  | ƒ G t ƒ  |  _ H t |  _ I d |  _ d  S(   Ni    (	   s   _Verboses   __init__s   selfs   verboses   _allocate_locks   _RLock__blocks   Nones   _RLock__owners   _RLock__count(   s   selfs   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__E s   c    s7   K L d |  i i |  i o |  i i ƒ  |  i f Sd  S(   Ns   <%s(%s, %d)>(   s   selfs	   __class__s   __name__s   _RLock__owners   getNames   _RLock__count(   s   self(    (    s   /usr/lib/python2.2/threading.pys   __repr__K s   i   c    sò   Q R t  ƒ  } S |  i | j oB T |  i d |  _ U t o V |  i d |  | ƒ n W d Sn X |  i i	 | ƒ } Y | o@ Z | |  _ [ d |  _ \ t o ] |  i d |  | ƒ n n% _ t o ` |  i d |  | ƒ n a | Sd  S(   Ni   s!   %s.acquire(%s): recursive successs   %s.acquire(%s): initial success   %s.acquire(%s): failure(   s   currentThreads   mes   selfs   _RLock__owners   _RLock__counts	   __debug__s   _notes   blockings   _RLock__blocks   acquires   rc(   s   selfs   blockings   mes   rc(    (    s   /usr/lib/python2.2/threading.pys   acquireQ s   



c    s»   c d t  ƒ  } e t o |  i | j p
 t d ‚ f |  i d |  _ } g | oA h t |  _ i |  i	 i
 ƒ  j t o k |  i d |  ƒ n n" m t o n |  i d |  ƒ n d  S(   Ns   release() of un-acquire()d locki   s   %s.release(): final releases   %s.release(): non-final release(   s   currentThreads   mes	   __debug__s   selfs   _RLock__owners   AssertionErrors   _RLock__counts   counts   Nones   _RLock__blocks   releases   _note(   s   selfs   mes   count(    (    s   /usr/lib/python2.2/threading.pys   releasec s   $

c    s\   r | \ } } s |  i i ƒ  t | |  _ u | |  _ v t o w |  i d |  ƒ n d  S(   Ns   %s._acquire_restore()(	   s   counts   owners   selfs   _RLock__blocks   acquires   _RLock__counts   _RLock__owners	   __debug__s   _note(   s   selfs   .2s   counts   owner(    (    s   /usr/lib/python2.2/threading.pys   _acquire_restorer s
   
c    su   y z t  o { |  i d |  ƒ n | |  i } } d |  _ ~ |  i }  t |  _ € |  i i	 ƒ   | | f Sd  S(   Ns   %s._release_save()i    (
   s	   __debug__s   selfs   _notes   _RLock__counts   counts   _RLock__owners   owners   Nones   _RLock__blocks   release(   s   selfs   counts   owner(    (    s   /usr/lib/python2.2/threading.pys   _release_savey s   
c    s   ƒ „ |  i t ƒ  j Sd  S(   N(   s   selfs   _RLock__owners   currentThread(   s   self(    (    s   /usr/lib/python2.2/threading.pys	   _is_ownedƒ s   (
   s   __name__s
   __module__s   Nones   __init__s   __repr__s   acquires   releases   _acquire_restores   _release_saves	   _is_owned(    (    (    s   /usr/lib/python2.2/threading.pys   _RLockC s   	
c     s   ‡ ˆ t  t |  | ƒ Sd  S(   N(   s   applys
   _Conditions   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys	   Condition‡ s   s
   _Conditionc      sw   Š t  Z Œ e e d „ Z ¥ d „  Z ¨ d „  Z « d „  Z ® d „  Z µ e d „ Z ß d d „ Z	 ñ d	 „  Z
 RS(
   Nc    s  Œ  t  i |  | ƒ Ž | t j o  t ƒ  } n  | |  _ ’ | i |  _ “ | i	 |  _	 — y ˜ | i
 |  _
 Wn ™ t j
 o
 š n X› y œ | i |  _ Wn  t j
 o
 ž n XŸ y   | i |  _ Wn ¡ t j
 o
 ¢ n X£ g  |  _ d  S(   N(   s   _Verboses   __init__s   selfs   verboses   locks   Nones   RLocks   _Condition__locks   acquires   releases   _release_saves   AttributeErrors   _acquire_restores	   _is_owneds   _Condition__waiters(   s   selfs   locks   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__Œ s&   c    s$   ¥ ¦ d |  i t |  i ƒ f Sd  S(   Ns   <Condition(%s, %d)>(   s   selfs   _Condition__locks   lens   _Condition__waiters(   s   self(    (    s   /usr/lib/python2.2/threading.pys   __repr__¥ s   c    s   ¨ © |  i i ƒ  d  S(   N(   s   selfs   _Condition__locks   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   _release_save¨ s   c    s   « ¬ |  i i ƒ  d  S(   N(   s   selfs   _Condition__locks   acquire(   s   selfs   x(    (    s   /usr/lib/python2.2/threading.pys   _acquire_restore« s   c    s?   ® ¯ |  i i d ƒ o ° |  i i ƒ  ± d Sn ³ d Sd  S(   Ni    i   (   s   selfs   _Condition__locks   acquires   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys	   _is_owned® s   c 	   sü  µ ¶ t  ƒ  } · t o |  i ƒ  p
 t d ‚ ¸ t ƒ  } ¹ | i ƒ  º |  i	 i
 | ƒ » |  i ƒ  } ¼ zs½ | t j o2 ¾ | i ƒ  ¿ t o À |  i d |  ƒ n n.Ç t ƒ  | } È d } É x É d ov Ê | i d ƒ } Ë | o Ì Pn Í | t ƒ  } Î | d j o Ï Pn Ð t | d | d ƒ } Ñ t | ƒ qÒ WÒ | o^ Ó t o Ô |  i d |  | ƒ n Õ y Ö |  i	 i | ƒ Wn × t j
 o
 Ø n Xn% Ú t o Û |  i d	 |  | ƒ n Wd  Ü Ý |  i | ƒ Xd  S(
   Ns   wait() of un-acquire()d locks   %s.wait(): got itf0.00050000000000000001i   i    i   f0.050000000000000003s   %s.wait(%s): timed outs   %s.wait(%s): got it(   s   currentThreads   mes	   __debug__s   selfs	   _is_owneds   AssertionErrors   _allocate_locks   waiters   acquires   _Condition__waiterss   appends   _release_saves   saved_states   timeouts   Nones   _notes   _times   endtimes   delays   gotits	   remainings   mins   _sleeps   removes
   ValueErrors   _acquire_restore(	   s   selfs   timeouts   mes   delays   gotits   waiters   saved_states   endtimes	   remaining(    (    s   /usr/lib/python2.2/threading.pys   waitµ sD   !
	 



i   c    s  ß à t  ƒ  } á t o |  i ƒ  p
 t d ‚ â |  i } ã | |  } ä | o, å t o æ |  i	 d |  ƒ n ç d  Sn è |  i	 d |  | é | d j o d p d ƒ ê xQ | Dê ]F } ë | i ƒ  ì y í | i | ƒ Wn î t j
 o
 ï n Xqº Wd  S(   Ns   notify() of un-acquire()d locks   %s.notify(): no waiterss"   %s.notify(): notifying %d waiter%si   s   ss    (   s   currentThreads   mes	   __debug__s   selfs	   _is_owneds   AssertionErrors   _Condition__waiterss   ns   waiterss   _notes   waiters   releases   removes
   ValueError(   s   selfs   ns   mes   _Condition__waiterss   waiters   waiters(    (    s   /usr/lib/python2.2/threading.pys   notifyß s"   !

 	c    s    ñ ò |  i t |  i ƒ ƒ d  S(   N(   s   selfs   notifys   lens   _Condition__waiters(   s   self(    (    s   /usr/lib/python2.2/threading.pys	   notifyAllñ s   (   s   __name__s
   __module__s   Nones   __init__s   __repr__s   _release_saves   _acquire_restores	   _is_owneds   waits   notifys	   notifyAll(    (    (    s   /usr/lib/python2.2/threading.pys
   _ConditionŠ s   	*c     s   õ ö t  t |  | ƒ Sd  S(   N(   s   applys
   _Semaphores   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys	   Semaphoreõ s   s
   _Semaphorec      s8   ø t  Z ü d e d „ Z d d „ Z d „  Z RS(   Ni   c    s\   ü ý t  o | d j p
 t d ‚ þ t i |  | ƒ ÿ t t ƒ  ƒ |  _	  | |  _
 d  S(   Ni    s$   Semaphore initial value must be >= 0(   s	   __debug__s   values   AssertionErrors   _Verboses   __init__s   selfs   verboses	   Conditions   Locks   _Semaphore__conds   _Semaphore__value(   s   selfs   values   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__ü s   !c    së   d } |  i i ƒ  x® |  i d j oT | o Pn t o# 	|  i d 
|  | |  i ƒ n |  i i ƒ  q" W|  i d |  _ t o  |  i d |  |  i ƒ n d } |  i i	 ƒ  | Sd  S(   Ni    s)   %s.acquire(%s): blocked waiting, value=%si   s   %s.acquire: success, value=%s(
   s   rcs   selfs   _Semaphore__conds   acquires   _Semaphore__values   blockings	   __debug__s   _notes   waits   release(   s   selfs   blockings   rc(    (    s   /usr/lib/python2.2/threading.pys   acquires"   	 

	c    st   |  i i ƒ  |  i d |  _ t o  |  i d |  |  i ƒ n |  i i ƒ  |  i i ƒ  d  S(   Ni   s   %s.release: success, value=%s(   s   selfs   _Semaphore__conds   acquires   _Semaphore__values	   __debug__s   _notes   notifys   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   releases   
(   s   __name__s
   __module__s   Nones   __init__s   acquires   release(    (    (    s   /usr/lib/python2.2/threading.pys
   _Semaphoreø s   	c     s    t  t |  | ƒ Sd  S(   N(   s   applys   _BoundedSemaphores   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys   BoundedSemaphores   s   _BoundedSemaphorec      s2   "t  Z d  Z #$d e d „ Z (d „  Z RS(   s6   Semaphore that checks that # releases is <= # acquiresi   c    s)   $%t  i |  | | ƒ &| |  _ d  S(   N(   s
   _Semaphores   __init__s   selfs   values   verboses   _initial_value(   s   selfs   values   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__$s   c    s=   ()|  i |  i j o *t d ‚ n +t i |  ƒ Sd  S(   Ns!   Semaphore released too many times(   s   selfs   _Semaphore__values   _initial_values
   ValueErrors
   _Semaphores   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   release(s   (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   release(    (    (    s   /usr/lib/python2.2/threading.pys   _BoundedSemaphore"s   c     s   ./t  t |  | ƒ Sd  S(   N(   s   applys   _Events   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys   Event.s   s   _Eventc      sM   1t  Z 5e d „ Z :d „  Z =d „  Z Cd „  Z He d „ Z RS(   Nc    s;   56t  i |  | ƒ 7t t ƒ  ƒ |  _ 8d |  _ d  S(   Ni    (   s   _Verboses   __init__s   selfs   verboses	   Conditions   Locks   _Event__conds   _Event__flag(   s   selfs   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__5s   c    s   :;|  i Sd  S(   N(   s   selfs   _Event__flag(   s   self(    (    s   /usr/lib/python2.2/threading.pys   isSet:s   c    sC   =>|  i i ƒ  ?d |  _ @|  i i ƒ  A|  i i ƒ  d  S(   Ni   (   s   selfs   _Event__conds   acquires   _Event__flags	   notifyAlls   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   set=s   c    s3   CD|  i i ƒ  Ed |  _ F|  i i ƒ  d  S(   Ni    (   s   selfs   _Event__conds   acquires   _Event__flags   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   clearCs   c    sL   HI|  i i ƒ  J|  i o K|  i i | ƒ n L|  i i ƒ  d  S(   N(   s   selfs   _Event__conds   acquires   _Event__flags   waits   timeouts   release(   s   selfs   timeout(    (    s   /usr/lib/python2.2/threading.pys   waitHs   (   s   __name__s
   __module__s   Nones   __init__s   isSets   sets   clears   wait(    (    (    s   /usr/lib/python2.2/threading.pys   _Event1s
   	s	   Thread-%dc    s"   PQRt  d a  S|  t  Sd  S(   Ni   (   s   _counters   template(   s   template(    (    s   /usr/lib/python2.2/threading.pys   _newnamePs   s   Threadc      sÑ   ]t  Z _d Z ae e e f  h  e d „ Z od „  Z sd „  Z ~d „  Z Šd „  Z Žd „  Z	 ­d „  Z
 ³d	 „  Z ¸e d
 „ Z Ód „  Z ×d „  Z Ûd „  Z ßd „  Z ãd „  Z RS(   Ni    c    sÆ   act  o | t j p
 t d ‚ dt i |  | ƒ e| |  _	 ft
 | p t ƒ  ƒ |  _ g| |  _ h| |  _ i|  i ƒ  |  _ jd |  _ kd |  _ lt t ƒ  ƒ |  _ md |  _ d  S(   Ns#   group argument must be None for nowi    i   (   s	   __debug__s   groups   Nones   AssertionErrors   _Verboses   __init__s   selfs   verboses   targets   _Thread__targets   strs   names   _newnames   _Thread__names   argss   _Thread__argss   kwargss   _Thread__kwargss   _set_daemons   _Thread__daemonics   _Thread__starteds   _Thread__stoppeds	   Conditions   Locks   _Thread__blocks   _Thread__initialized(   s   selfs   groups   targets   names   argss   kwargss   verbose(    (    s   /usr/lib/python2.2/threading.pys   __init__as   !c    s   oqt  ƒ  i ƒ  Sd  S(   N(   s   currentThreads   isDaemon(   s   self(    (    s   /usr/lib/python2.2/threading.pys   _set_daemonos   c    s   stt  o |  i p
 t d ‚ ud } v|  i o wd } n x|  i o yd } n z|  i o {| d } n |d |  i i	 |  i
 | f Sd  S(   Ns    Thread.__init__() was not calleds   initials   starteds   stoppeds    daemons   <%s(%s, %s)>(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   statuss   _Thread__starteds   _Thread__stoppeds   _Thread__daemonics	   __class__s   __name__s   _Thread__name(   s   selfs   status(    (    s   /usr/lib/python2.2/threading.pys   __repr__ss   	c    s¸   ~t  o |  i p
 t d ‚ €t  o |  i p
 t d ‚ t  o ‚|  i d |  ƒ n ƒt i ƒ  „|  t |  <…t i	 ƒ  †t
 |  i f  ƒ ‡d |  _ ˆt d ƒ d  S(   Ns   Thread.__init__() not calleds   thread already starteds   %s.start(): starting threadi   f9.9999999999999995e-07(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__starteds   _notes   _active_limbo_locks   acquires   _limbos   releases   _start_new_threads   _Thread__bootstraps   _sleep(   s   self(    (    s   /usr/lib/python2.2/threading.pys   start~s   
c    s4   Š‹|  i o  Œt |  i |  i |  i ƒ n d  S(   N(   s   selfs   _Thread__targets   applys   _Thread__argss   _Thread__kwargs(   s   self(    (    s   /usr/lib/python2.2/threading.pys   runŠs   c    s…  ŽzCd |  _ ‘t i ƒ  ’|  t t ƒ  <“t |  =”t i ƒ  •t o –|  i	 d |  ƒ n —y ˜|  i
 ƒ  Wn¦ ™t j
 o( št o ›|  i	 d |  ƒ n n’ œt o ž|  i	 d |  ƒ n Ÿt ƒ  }  t d | ƒ ¡t i i d |  i ƒ  | i ƒ  f ƒ n" X¤t o ¥|  i	 d |  ƒ n Wd  ¦§|  i ƒ  ¨y ©|  i ƒ  Wn ª«n XXd  S(   Ni   s    %s.__bootstrap(): thread starteds#   %s.__bootstrap(): raised SystemExits%   %s.__bootstrap(): unhandled exceptions   files   Exception in thread %s:
%s
s   %s.__bootstrap(): normal return(   s   selfs   _Thread__starteds   _active_limbo_locks   acquires   _actives
   _get_idents   _limbos   releases	   __debug__s   _notes   runs
   SystemExits	   _StringIOs   ss
   _print_excs   _syss   stderrs   writes   getNames   getvalues   _Thread__stops   _Thread__delete(   s   selfs   s(    (    s   /usr/lib/python2.2/threading.pys   __bootstrapŽs6   



-
c    sC   ­®|  i i ƒ  ¯d |  _ °|  i i ƒ  ±|  i i ƒ  d  S(   Ni   (   s   selfs   _Thread__blocks   acquires   _Thread__stoppeds	   notifyAlls   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   __stop­s   c    s.   ³´t  i ƒ  µt t ƒ  =¶t  i ƒ  d  S(   N(   s   _active_limbo_locks   acquires   _actives
   _get_idents   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   __delete³s   c    s¾  ¸¹t  o |  i p
 t d ‚ ºt  o |  i p
 t d ‚ »t  o |  t ƒ  j	 p
 t d ‚ ¼t  o) ½|  i o ¾|  i d |  ƒ n n ¿|  i i	 ƒ  À| t j oN Áx# Á|  i o Â|  i i ƒ  q¼ WÃt  o Ä|  i d |  ƒ n n§ Æt ƒ  | } Çx Ç|  i o` È| t ƒ  } É| d j o) Êt  o Ë|  i d |  ƒ n ÌPn Í|  i i | ƒ qWÏt  o Ð|  i d |  ƒ n Ñ|  i i ƒ  d  S(   Ns   Thread.__init__() not calleds'   cannot join thread before it is starteds   cannot join current threads%   %s.join(): waiting until thread stopss   %s.join(): thread stoppedi    s   %s.join(): timed out(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__starteds   currentThreads   _Thread__stoppeds   _notes   _Thread__blocks   acquires   timeouts   Nones   waits   _times   deadlines   delays   release(   s   selfs   timeouts   delays   deadline(    (    s   /usr/lib/python2.2/threading.pys   join¸s2   $
 
 

c    s/   ÓÔt  o |  i p
 t d ‚ Õ|  i Sd  S(   Ns   Thread.__init__() not called(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__name(   s   self(    (    s   /usr/lib/python2.2/threading.pys   getNameÓs   c    s7   ×Øt  o |  i p
 t d ‚ Ùt | ƒ |  _ d  S(   Ns   Thread.__init__() not called(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   strs   names   _Thread__name(   s   selfs   name(    (    s   /usr/lib/python2.2/threading.pys   setName×s   c    s:   ÛÜt  o |  i p
 t d ‚ Ý|  i o |  i Sd  S(   Ns   Thread.__init__() not called(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__starteds   _Thread__stopped(   s   self(    (    s   /usr/lib/python2.2/threading.pys   isAliveÛs   c    s/   ßàt  o |  i p
 t d ‚ á|  i Sd  S(   Ns   Thread.__init__() not called(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__daemonic(   s   self(    (    s   /usr/lib/python2.2/threading.pys   isDaemonßs   c    sP   ãät  o |  i p
 t d ‚ åt  o |  i p
 t d ‚ æ| |  _ d  S(   Ns   Thread.__init__() not calleds)   cannot set daemon status of active thread(   s	   __debug__s   selfs   _Thread__initializeds   AssertionErrors   _Thread__starteds   daemonics   _Thread__daemonic(   s   selfs   daemonic(    (    s   /usr/lib/python2.2/threading.pys	   setDaemonãs   (   s   __name__s
   __module__s   _Thread__initializeds   Nones   __init__s   _set_daemons   __repr__s   starts   runs   _Thread__bootstraps   _Thread__stops   _Thread__deletes   joins   getNames   setNames   isAlives   isDaemons	   setDaemon(    (    (    s   /usr/lib/python2.2/threading.pys   Thread]s   		c     s   êët  |  | Ž  Sd  S(   N(   s   _Timers   argss   kwargs(   s   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys   Timerês   s   _Timerc      s>   ít  Z d  Z óõg  h  d „ Z ýd „  Z d „  Z RS(   s²   Call a function after a specified number of seconds:

    t = Timer(30.0, f, args=[], kwargs={})
    t.start()
    t.cancel() # stop the timer's action if it's still waiting
    c    sV   õöt  i |  ƒ ÷| |  _ ø| |  _ ù| |  _ ú| |  _ ût ƒ  |  _ d  S(   N(	   s   Threads   __init__s   selfs   intervals   functions   argss   kwargss   Events   finished(   s   selfs   intervals   functions   argss   kwargs(    (    s   /usr/lib/python2.2/threading.pys   __init__õs   c    s   ýþÿ|  i i ƒ  d S(   s(   Stop the timer if it hasn't finished yetN(   s   selfs   finisheds   set(   s   self(    (    s   /usr/lib/python2.2/threading.pys   cancelýs   c    s^   |  i i |  i ƒ |  i i ƒ  o |  i |  i |  i Ž  n |  i i ƒ  d  S(   N(	   s   selfs   finisheds   waits   intervals   isSets   functions   argss   kwargss   set(   s   self(    (    s   /usr/lib/python2.2/threading.pys   runs   (   s   __name__s
   __module__s   __doc__s   __init__s   cancels   run(    (    (    s   /usr/lib/python2.2/threading.pys   _Timerís   s   _MainThreadc      s/   
t  Z d „  Z d „  Z d „  Z RS(   Nc    sr   t  i |  d d ƒd |  _ t i ƒ  |  t t ƒ  <t i ƒ  d  k	 } | i
 |  i ƒ d  S(   Ns   names
   MainThreadi   (   s   Threads   __init__s   selfs   _Thread__starteds   _active_limbo_locks   acquires   _actives
   _get_idents   releases   atexits   registers   _MainThread__exitfunc(   s   selfs   atexit(    (    s   /usr/lib/python2.2/threading.pys   __init__s   c    s   d Sd  S(   Ni    (    (   s   self(    (    s   /usr/lib/python2.2/threading.pys   _set_daemons   c    s«   |  i ƒ  t ƒ  } | o% t o |  i d |  ƒ n n x( | o | i ƒ   t ƒ  } qQ W!t o "|  i d |  ƒ n #|  i ƒ  d  S(   Ns   %s: waiting for other threadss   %s: exiting(   s   selfs   _Thread__stops   _pickSomeNonDaemonThreads   ts	   __debug__s   _notes   joins   _Thread__delete(   s   selfs   t(    (    s   /usr/lib/python2.2/threading.pys
   __exitfuncs   

 

(   s   __name__s
   __module__s   __init__s   _set_daemons   _MainThread__exitfunc(    (    (    s   /usr/lib/python2.2/threading.pys   _MainThread
s   		c     sQ   %&x= t  ƒ  D&]/ }  '|  i ƒ  o
 |  i ƒ  o (|  Sn q W)t Sd  S(   N(   s	   enumerates   ts   isDaemons   isAlives   None(   s   t(    (    s   /usr/lib/python2.2/threading.pys   _pickSomeNonDaemonThread%s
    	s   _DummyThreadc      s2   3t  Z 5d „  Z <d „  Z ?e d „ Z RS(   Nc    sY   56t  i |  d t d ƒ ƒ7d |  _ 8t i ƒ  9|  t t ƒ  <:t i	 ƒ  d  S(   Ns   names   Dummy-%di   (
   s   Threads   __init__s   selfs   _newnames   _Thread__starteds   _active_limbo_locks   acquires   _actives
   _get_idents   release(   s   self(    (    s   /usr/lib/python2.2/threading.pys   __init__5s
   c    s   <=d Sd  S(   Ni   (    (   s   self(    (    s   /usr/lib/python2.2/threading.pys   _set_daemon<s   c    s"   ?@t  o d p
 t d ‚ d  S(   Ni    s   cannot join a dummy thread(   s	   __debug__s   AssertionError(   s   selfs   timeout(    (    s   /usr/lib/python2.2/threading.pys   join?s   (   s   __name__s
   __module__s   __init__s   _set_daemons   Nones   join(    (    (    s   /usr/lib/python2.2/threading.pys   _DummyThread3s   	c      s?   EFy Gt  t ƒ  SWn  Ht j
 o Jt ƒ  Sn Xd  S(   N(   s   _actives
   _get_idents   KeyErrors   _DummyThread(    (    (    s   /usr/lib/python2.2/threading.pys   currentThreadEs   c     sA   LMt  i ƒ  Nt t ƒ t t ƒ }  Ot  i ƒ  P|  Sd  S(   N(   s   _active_limbo_locks   acquires   lens   _actives   _limbos   counts   release(   s   count(    (    s   /usr/lib/python2.2/threading.pys   activeCountLs   c     sA   RSt  i ƒ  Tt i ƒ  t i ƒ  }  Ut  i ƒ  V|  Sd  S(   N(   s   _active_limbo_locks   acquires   _actives   valuess   _limbos   actives   release(   s   active(    (    s   /usr/lib/python2.2/threading.pys	   enumerateRs   c     sa  `bd t  f d „  ƒ  Y} ƒd t f d „  ƒ  Y} “d t f d „  ƒ  Y}  d }	 ¡d }
 ¢d	 }  ¤| |
 ƒ } ¥g  } ¦xQ t
 |	 ƒ D¦]@ } §| | |  ƒ } ¨| i d
 | d ƒ ©| i | ƒ q‘ Wª| | |  |	 ƒ } «x+ | D«]  } ¬| i ƒ  ­t d ƒ qø W®| i ƒ  ¯x | D¯] } °| i ƒ  q6W±| i ƒ  d  S(   Ns   BoundedQueuec      s/   bt  Z dd „  Z ld „  Z wd „  Z RS(   Nc    sh   det  i |  ƒ ft ƒ  |  _ gt |  i ƒ |  _ ht |  i ƒ |  _ i| |  _ jg  |  _	 d  S(   N(
   s   _Verboses   __init__s   selfs   RLocks   mons	   Conditions   rcs   wcs   limits   queue(   s   selfs   limit(    (    s   /usr/lib/python2.2/threading.pys   __init__ds   c    s¶   lm|  i i ƒ  nxD nt |  i ƒ |  i j o' o|  i d | ƒ p|  i i	 ƒ  q Wq|  i i
 | ƒ r|  i d s| t |  i ƒ ƒ t|  i i ƒ  u|  i i ƒ  d  S(   Ns   put(%s): queue fulls    put(%s): appended, length now %d(   s   selfs   mons   acquires   lens   queues   limits   _notes   items   wcs   waits   appends   rcs   notifys   release(   s   selfs   item(    (    s   /usr/lib/python2.2/threading.pys   putls    c    s³   wx|  i i ƒ  yx3 y|  i o$ z|  i d ƒ {|  i i ƒ  q W||  i d } }|  i d =~|  i d | t |  i ƒ ƒ |  i	 i
 ƒ  €|  i i ƒ  | Sd  S(   Ns   get(): queue emptyi    s   get(): got %s, %d left(   s   selfs   mons   acquires   queues   _notes   rcs   waits   items   lens   wcs   notifys   release(   s   selfs   item(    (    s   /usr/lib/python2.2/threading.pys   getws    (   s   __name__s
   __module__s   __init__s   puts   get(    (    (    s   /usr/lib/python2.2/threading.pys   BoundedQueuebs   	s   ProducerThreadc      s#   ƒt  Z …d „  Z Šd „  Z RS(   Nc    s5   …†t  i |  d d ƒ‡| |  _ ˆ| |  _ d  S(   Ns   names   Producer(   s   Threads   __init__s   selfs   queues   quota(   s   selfs   queues   quota(    (    s   /usr/lib/python2.2/threading.pys   __init__…s   c    s‚   Š‹d k  l  } Œd } x\ | |  i j  oH Ž| d } |  i i d |  i ƒ  | f ƒ t | ƒ  d ƒ q" Wd  S(   N(   s   randomi    i   s   %s.%df1.0000000000000001e-05(   s   randoms   counters   selfs   quotas   queues   puts   getNames   _sleep(   s   selfs   randoms   counter(    (    s   /usr/lib/python2.2/threading.pys   runŠs   	 #(   s   __name__s
   __module__s   __init__s   run(    (    (    s   /usr/lib/python2.2/threading.pys   ProducerThreadƒs   	s   ConsumerThreadc      s#   “t  Z •d „  Z šd „  Z RS(   Nc    s5   •–t  i |  d d ƒ—| |  _ ˜| |  _ d  S(   Ns   names   Consumer(   s   Threads   __init__s   selfs   queues   count(   s   selfs   queues   count(    (    s   /usr/lib/python2.2/threading.pys   __init__•s   c    sR   š›xE ›|  i d j o1 œ|  i i ƒ  } | GHž|  i d |  _ q	 Wd  S(   Ni    i   (   s   selfs   counts   queues   gets   item(   s   selfs   item(    (    s   /usr/lib/python2.2/threading.pys   runšs
    (   s   __name__s
   __module__s   __init__s   run(    (    (    s   /usr/lib/python2.2/threading.pys   ConsumerThread“s   	i   i   i   s   Producer-%di   f9.9999999999999995e-07(   s   _Verboses   BoundedQueues   Threads   ProducerThreads   ConsumerThreads   NPs   QLs   NIs   Qs   Ps   ranges   is   ts   setNames   appends   Cs   starts   _sleeps   join(   s   NIs   Cs   ProducerThreads   is   BoundedQueues   Ps   ConsumerThreads   Qs   ts   NPs   QL(    (    s   /usr/lib/python2.2/threading.pys   _test`s.   !				 	
 	
 	s   __main__(3   s   __doc__s   syss   times   threads	   tracebacks   StringIOs   _syss   _times   sleeps   _sleeps   start_new_threads   _start_new_threads   allocate_locks   _allocate_locks	   get_idents
   _get_idents   errors   ThreadErrors	   print_excs
   _print_excs	   _StringIOs   _VERBOSEs	   __debug__s   _Verboses   Locks   RLocks   _RLocks	   Conditions
   _Conditions	   Semaphores
   _Semaphores   BoundedSemaphores   _BoundedSemaphores   Events   _Events   _counters   _newnames   _active_limbo_locks   _actives   _limbos   Threads   Timers   _Timers   _MainThreads   _pickSomeNonDaemonThreads   _DummyThreads   currentThreads   activeCounts	   enumerates   _tests   __name__()   s	   tracebacks   _BoundedSemaphores   currentThreads   _Timers   _tests	   Semaphores	   _StringIOs   activeCounts   _pickSomeNonDaemonThreads   _sleeps	   enumerates   ThreadErrors   _start_new_threads   BoundedSemaphores
   _print_excs   _Events   _RLocks   _active_limbo_locks	   Conditions   _Verboses   _DummyThreads   Threads
   _Conditions
   _get_idents   RLocks   syss   Timers
   _Semaphores   _newnames   threads   StringIOs   _limbos   Locks   _actives   _MainThreads   _syss   _times   _allocate_locks   times   Events   _VERBOSE(    (    s   /usr/lib/python2.2/threading.pys   ? sh   		
		Dk'				
S