ó
úR‹_c           @   sò  d  d l  m  Z  d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l j Z	 d  d l
 Z d  d l Z d  d l m Z d  d l Z d e j f d „  ƒ  YZ d „  Z d	 e f d
 „  ƒ  YZ d e	 j f d „  ƒ  YZ d e f d „  ƒ  YZ d d „ Z d „  Z d „  Z d „  Z d6 \ Z Z Z d Z d Z e	 j rFe	 j sXe	 j  sXe	 j! rad Z n e	 j" sse	 j# r|d Z n  d e	 j f d „  ƒ  YZ$ e	 j% d e$ f d „  ƒ  Yƒ Z& e	 j% d e$ f d  „  ƒ  Yƒ Z' e	 j% d! e$ f d" „  ƒ  Yƒ Z( d# e$ f d$ „  ƒ  YZ) d% e	 j f d& „  ƒ  YZ* d' e j j+ j, f d( „  ƒ  YZ- d) e j j+ j, f d* „  ƒ  YZ. d+ e	 j f d, „  ƒ  YZ/ d- e	 j f d. „  ƒ  YZ0 d/ „  Z1 d0 e	 j f d1 „  ƒ  YZ2 d2 „  Z3 d3 e	 j f d4 „  ƒ  YZ4 e5 d5 k rîe	 j6 ƒ  n  d S(7   iÿÿÿÿ(   t   timeN(   t   Event(   t   Queue(   t   ExpectedExceptiont   TestCoroutinePoolc           B   sk   e  Z e j j Z d  „  Z d „  Z d „  Z e	 e _
 d „  Z d „  Z d „  Z e j d ƒ d „  ƒ Z RS(   c            sE   t  ƒ  ‰  ‡  f d †  } |  j d ƒ } | j | d ƒ ˆ  j ƒ  d  S(   Nc            s   ˆ  j  ƒ  d  S(   N(   t   set(   t   _(   t   done(    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   some_work   s    i   t   x(   R	   (   R   t   klasst   apply_asynct   wait(   t   selfR   t   pool(    (   R   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_apply_async   s
    	c            sG   d ‰  ‡  f d †  } |  j  d ƒ } | j | ƒ } |  j ˆ  | ƒ d  S(   Ns   return valuec              s   ˆ  S(   N(    (    (   t   value(    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR      s    i   (   R
   t   applyt   assertEqual(   R   R   R   t   result(    (   R   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   test_apply   s
    c         C   sN   |  j  d ƒ } d „  } y | j | ƒ Wn t k
 r< n X|  j d ƒ d  S(   Ni   c           S   s   t  ƒ  ‚ d  S(   N(   R   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   raiser)   s    s$   Should have raised ExpectedException(   R
   R   R   t   fail(   R   R   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_apply_raises&   s    	c            s…   t  ƒ  ‰  g  ‰ ‡  ‡ f d †  } ‡  ‡ f d †  } |  j d ƒ } | j | ƒ } | j | ƒ | j ƒ  |  j d d d g ˆ ƒ d  S(   Nc              s(   t  j d ƒ ˆ j d ƒ ˆ  j ƒ  d  S(   Ngü©ñÒMbP?t   prod(   t   geventt   sleept   appendR   (    (   t   evtt   results(    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   producer:   s    c              s(   ˆ j  d ƒ ˆ  j ƒ  ˆ j  d ƒ d  S(   Nt   cons1t   cons2(   R   R   (    (   R   R   (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   consumer?   s    
i   R   R   R    (   R   R
   t   spawnR   t   getR   (   R   R   R!   R   R   (    (   R   R   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_multiple_coros6   s    	
c            sa   g  ‰ ‡ f d †  ‰  ‡  f d †  } |  j  d ƒ } | j | ƒ t j d ƒ |  j ˆ g  ƒ d  S(   Nc              s   ˆ  j  t ƒ d  S(   N(   R   t   True(    (   t   timer_fired(    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   fire_timerM   s    c              s   t  j d ˆ  ƒ d  S(   Ni    (   R   t   timer(    (   R'   (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR   P   s    i   i    (   R
   R   R   R   R   (   R   R   R   (    (   R'   R&   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   dont_test_timer_cancelJ   s    c         C   sd   |  j  d ƒ } | j | j d „  d f ƒ } |  j | d ƒ t ƒ  } | j | j ƒ | j ƒ  d  S(   Ni   c         S   s   |  d S(   Ni   (    (   t   a(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   <lambda>Z   t    i   i   (   i   (   R
   R   R   R   R   R   R   (   R   R   R   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_reentrantX   s    	s   Does not work on PyPyc         C   sÙ   d d  l  } |  j d d ƒ } | j } z— t ƒ  | _ | j t ƒ } t j d ƒ  |  j t	 | j
 ƒ Wd  QXt j d ƒ |  j | j ƒ  d ƒ t j j d ƒ  | j t j d ƒ Wd  QXWd  | | _ | j ƒ  Xd  S(   Niÿÿÿÿt   sizei   i   i    gš™™™™™¹?(   i    (   t   sysR
   t   stderrt   FakeFileR"   t   crashR   t   Timeoutt   assertRaisest   RuntimeErrorR#   R   R   t
   free_countt	   start_newR   t   join(   R   R/   R   t
   normal_errt   waiter(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_stderr_raising`   s    		(   t   __name__t
   __module__R   R   t   PoolR
   R   R   R   t   Falset   error_fatalR$   R)   R-   t	   greentestt
   skipOnPyPyR;   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR      s   	
	
					c          O   s   t  d ƒ ‚ d  S(   Nt   Whoa(   R5   (   t   _argst   _kw(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR2   €   s    R1   c           B   s   e  Z d  „  Z RS(   c         G   s   t  d ƒ ‚ d  S(   Nt   Whaaa(   R5   (   R   RD   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   write†   s    (   R<   R=   RG   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR1   „   s   t   PoolBasicTestsc           B   sw   e  Z e j j Z d  „  Z d „  Z d „  Z e	 j
 d „  ƒ Z e	 j
 d „  ƒ Z e	 j
 d „  ƒ Z d „  Z d „  Z RS(   c         C   sj  |  j  d d ƒ } |  j | j ƒ  d ƒ g  } | j | j d ƒ } |  j | j ƒ  d ƒ | j ƒ  |  j | d g ƒ t j d ƒ |  j | j ƒ  d ƒ | j | j d ƒ |  j d | j ƒ  ƒ |  j | d g ƒ | j | j d	 ƒ |  j d | j ƒ  ƒ |  j | d g ƒ | j | j d
 ƒ |  j | d g ƒ t j d ƒ |  j t	 | ƒ d d d d g ƒ d  S(   NR.   i   i   i    i   i   g{®Gáz„?(   i   (   i   (   i   (
   R
   R   R6   R"   R   R#   R   R   R   t   sorted(   R   t   pt   rt   first(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_execute_async   s&    
c         C   s{   |  j  d d ƒ } | j t j d ƒ } | j | ƒ | j ƒ  |  j | ƒ |  j t | ƒ d ƒ |  j | j	 j
 d ƒ d  S(   NR.   i   iè  i    (   R
   R"   R   R   t   discardt   killt   assertFalseR   t   lent
   _semaphoret   counter(   R   RJ   RL   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_discard¨   s    
c      
   C   s1  |  j  d d ƒ } t j t j d ƒ } zø t j t j d ƒ } zÑ |  j | j ƒ  d ƒ |  j t | ƒ d ƒ | j | ƒ |  j | j ƒ  d ƒ |  j t | ƒ d ƒ |  j t j	 ƒ ( t j	 d ƒ  | j | ƒ Wd  QXWd  QX|  j | j ƒ  d ƒ |  j t | ƒ d ƒ Wd  | j
 ƒ  XWd  | j
 ƒ  Xd  S(   NR.   i   iè  i    gš™™™™™¹?(   R
   R   R"   R   R   R6   RQ   t   addR4   R3   RO   (   R   RJ   RL   t   second(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method±   s"    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j | d t ƒWd  QXWd  | j	 ƒ  XWd  | j	 ƒ  Xd  S(   NR.   i   iè  t   blocking(
   R
   R   R"   R   RU   R4   R   t   PoolFullR?   RO   (   R   RJ   RL   RV   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method_non_blockingÈ   s    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j | d d ƒWd  QXWd  | j ƒ  XWd  | j ƒ  Xd  S(   NR.   i   iè  t   timeoutgš™™™™™¹?(	   R
   R   R"   R   RU   R4   R   RY   RO   (   R   RJ   RL   RV   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method_timeout×   s    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j	 | d d ƒWd  QXWd  | j
 ƒ  XWd  | j
 ƒ  Xd  S(   NR.   i   iè  R[   gš™™™™™¹?(   R
   R   R"   R   t   GreenletRU   R4   R   RY   t   startRO   (   R   RJ   RL   RV   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_start_method_timeoutæ   s    c         C   s5   |  j  ƒ  } | j d „  d ƒ } |  j | d ƒ d  S(   Nc         S   s
   d |  f S(   Nt   foo(    (   R*   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   ÷   R,   i   R`   (   i   (   R`   i   (   R
   R   R   (   R   RJ   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR   õ   s    c         C   s#   t  |  _ |  j t |  j d ƒ d  S(   Niÿÿÿÿ(   R?   t   switch_expectedR4   t
   ValueErrorR
   (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_init_errorú   s    	(   R<   R=   R   R   R>   R
   RM   RT   RW   RA   t   ignores_leakcheckRZ   R\   R_   R   Rc   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRH   Š   s   					t   TimingWrapperc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  |  _ d  S(   N(   t   funct   Nonet   elapsed(   R   Rf   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   __init__  s    	c         O   s5   t  ƒ  } z |  j | | Ž  SWd  t  ƒ  | |  _ Xd  S(   N(   R    Rf   Rh   (   R   t   argst   kwdst   t(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   __call__  s    	(   R<   R=   Ri   Rm   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRe     s   	g        c         C   s   t  j | ƒ |  |  S(   N(   R   R   (   R	   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   sqr  s    c         C   s   |  |  S(   N(    (   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   squared  s    c         C   s   t  j t j ƒ  d ƒ |  |  S(   Ngš™™™™™¹?(   R   R   t   random(   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   sqr_random_sleep  s    c          c   s-   x t  d ƒ D] }  |  Vq Wt j d ƒ d  S(   Ni   gš™™™™™É?(   t   rangeR   R   (   t   i(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   final_sleep  s    	gË¡E¶óý´?gìQ¸…ë¡?gìQ¸…ëÁ?i
   iè  i   id   t   TestPoolc           B   sï   e  Z e j Z d  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   c         C   s,   t  j j |  ƒ t j j |  j ƒ |  _ d  S(   N(   RA   t   TestCaset   setUpR   R   R>   R.   (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRw   4  s    c         C   s   |  j  j ƒ  d  S(   N(   R   R8   (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   cleanup8  s    c         C   sL   |  j  j } |  j | t d ƒ d ƒ |  j | t d i d d 6ƒ d ƒ d  S(   Ni   i   i   R	   i	   (   i   (    (   R   R   R   Rn   (   R   t   papply(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ;  s    c         C   sx   |  j  j } |  j | t t t ƒ ƒ t t t t t ƒ ƒ ƒ ƒ |  j | t t d ƒ ƒ t t t t d ƒ ƒ ƒ ƒ d  S(   Nid   (   R   t   mapR   Rn   Rr   t   SMALL_RANGEt   listRo   (   R   t   pmap(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_map@  s    4c         C   sW   |  j  j t d t f ƒ } t | j ƒ } |  j | ƒ  d ƒ |  j | j t d ƒ d  S(   Ni   i1   i   (	   R   R   Rn   t   TIMEOUT1Re   R#   R   t   assertTimeoutAlmostEqualRh   (   R   t   resR#   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   test_asyncE  s    c         C   s†   g  } |  j  j t d t f d | j ƒ} t | j ƒ } |  j | ƒ  d ƒ |  j | j	 t d ƒ t
 j d ƒ |  j | d g ƒ d  S(   Ni   t   callbacki1   i   i    (   R   R   Rn   R   R   Re   R#   R   R€   Rh   R   R   (   R   R   R   R#   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_async_callbackK  s    $c         C   sn   |  j  j t d t d f ƒ } t | j ƒ } |  j t j | d t ƒ|  j	 | j
 t d ƒ |  j  j ƒ  d  S(   Ni   gš™™™™™É?R[   i   (   R   R   Rn   t   TIMEOUT2Re   R#   R4   R   R3   R€   Rh   R8   (   R   R   R#   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_async_timeoutT  s
    c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t t t ƒ ƒ ƒ ƒ d  S(   N(   R   t   imapRn   Rr   R{   R   R|   Rz   (   R   t   it(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_list_small[  s    c         C   sc   |  j  j t t t ƒ ƒ } x. t t ƒ D]  } |  j t | ƒ | | ƒ q( W|  j t t | ƒ d  S(   N(	   R   R‡   Rn   Rr   R{   R   t   nextR4   t   StopIteration(   R   Rˆ   Rs   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_it_small_  s    c         C   sc   |  j  j t t t ƒ ƒ } x. t t ƒ D]  } |  j t | ƒ | | ƒ q( W|  j t t | ƒ d  S(   N(	   R   R‡   Rn   Rr   t   LARGE_RANGER   RŠ   R4   R‹   (   R   Rˆ   Rs   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_it_largee  s    c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t t t ƒ ƒ ƒ ƒ d  S(   N(	   R   R‡   Rq   Rr   R{   R   R|   Rz   Ro   (   R   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_randomk  s    c         C   s   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ d  S(   N(
   R   t   imap_unorderedRn   Rr   R   R   RI   R|   Rz   Ro   (   R   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unorderedo  s    +c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ d  S(   N(
   R   R   Rq   Rr   R{   R   RI   R|   Rz   Ro   (   R   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_randomv  s    c         C   s/   |  j  j t g  ƒ } |  j t | ƒ g  ƒ d  S(   N(   R   R   Rn   R   R|   (   R   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_imap_unorderedz  s    c         C   s/   |  j  j t g  ƒ } |  j t | ƒ g  ƒ d  S(   N(   R   R‡   Rn   R   R|   (   R   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_imap~  s    c         C   s#   |  j  |  j j t g  ƒ g  ƒ d  S(   N(   R   R   Rz   Rn   (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_map‚  s    c         C   sv   |  j  j t j d g |  j p! d d ƒ } t j d ƒ t |  j  j ƒ } | ƒ  |  j | j d d ƒ | j	 ƒ  d  S(   Ngš™™™™™¹?i
   i   g        g      à?(
   R   t	   map_asyncR   R   R.   Re   RO   t   assertTimeWithinRangeRh   R8   (   R   R   RO   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_terminate…  s    ,c         C   s!   t  j t | ƒ d ƒ t | ƒ S(   Ng      $@(   R   R   t   floatt   str(   R   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR     s    c         C   sn   t  |  j j |  j d d d g ƒ ƒ } |  j j d k rK d d d g } n d d d g } |  j | | ƒ d  S(   Ni
   i   i   t   10t   1t   2(   R|   R   R   R   R.   R   (   R   R   t   expected(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_sleep‘  s
    'c         C   sa   t  ƒ  } | j d ƒ t j d | j t ƒ t |  j j d „  | ƒ ƒ } |  j | d g ƒ d  S(   Ni{   gš™™™™™¹?c         S   s   |  S(   N(    (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   Ÿ  R,   (	   R   t   putR   t   spawn_laterR‹   R|   R   R‡   R   (   R   t   qR   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_no_stop›  s
    	c         C   sa   t  ƒ  } | j d ƒ t j d | j t ƒ t |  j j d „  | ƒ ƒ } |  j | d g ƒ d  S(   NiÒ  gš™™™™™¹?c         S   s   |  S(   N(    (   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   ¦  R,   (	   R   R    R   R¡   R‹   R|   R   R   R   (   R   R¢   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_no_stop¢  s
    	c         C   s;   t  |  j j t t ƒ  ƒ ƒ } |  j | d d d g ƒ d  S(   Ni    i   i   (   R|   R   R‡   Rn   Rt   R   (   R   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_final_sleepª  s    c         C   s;   t  |  j j t t ƒ  ƒ ƒ } |  j | d d d g ƒ d  S(   Ni    i   i   (   R|   R   R   Rn   Rt   R   (   R   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_final_sleep®  s    c            s°   t  t d ƒ ƒ } d g ‰  ‡  f d †  } ‡  ‡ f d †  } xm ˆ j j ˆ j j f D]S } d ˆ  d <| | | | d d ƒ} | | ƒ } | ƒ  } ˆ j t | ƒ | ƒ qU Wd  S(   Nid   i    c            s   ˆ  d c d 7<|  S(   Ni    i   (    (   Rs   t   _j(   t   running(    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   short_running_func¸  s    c            s   ‡  ‡ ‡ f d †  } | S(   Nc             s‹   g  }  x~ t  ˆ  ƒ D]p \ } } ˆ j ˆ d | d k ˆ d ƒ |  j | ƒ t j d ƒ ˆ j t ˆ  j ƒ d k t ˆ  j ƒ ƒ q W|  S(   Ni    i   g{®Gáz„?(   t	   enumeratet
   assertTrueR   R   R   RQ   t   queue(   R   Rs   R	   (   t   mappingR¨   R   (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   reader¿  s    ",(    (   R­   R®   (   R¨   R   (   R­   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   make_reader¼  s    t   maxsizei   (   R|   Rr   R   R   R‡   R   RI   (   R   t   iterableR©   R¯   t   methR­   R®   t   l(    (   R¨   R   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt!   test_imap_unordered_bounded_queue³  s    	
		(   R<   R=   RA   t   LARGE_TIMEOUTt   __timeout__R.   Rw   Rx   R   R~   R‚   R„   R†   R‰   RŒ   RŽ   R   R‘   R’   R“   R”   R•   R˜   R   RŸ   R£   R¤   R¥   R¦   R´   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRu   0  s4   																					
				t	   TestPool2c           B   s   e  Z d  Z RS(   i   (   R<   R=   R.   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR·   Ô  s   t	   TestPool3c           B   s   e  Z d  Z RS(   i   (   R<   R=   R.   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR¸   Ø  s   t
   TestPool10c           B   s   e  Z d  Z RS(   i
   (   R<   R=   R.   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR¹   Ü  s   t   TestPoolUnlimitc           B   s   e  Z d  Z RS(   N(   R<   R=   Rg   R.   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRº   á  s   t	   TestPool0c           B   s   e  Z d  Z d „  Z RS(   i    c         C   s^   t  j j d d ƒ } |  j d | j ƒ  ƒ |  j | j ƒ  ƒ |  j d | j d d ƒ ƒ d  S(   NR.   i    R[   g{®Gáz„?(   R   R   R>   R   R6   R«   t   fullt   wait_available(   R   RJ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_wait_fullè  s    (   R<   R=   R.   R¾   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR»   å  s   t   TestJoinSleepc           B   s   e  Z d  „  Z RS(   c         C   sJ   t  j j ƒ  } | j t  j d ƒ } z | j d | ƒ Wd  | j ƒ  Xd  S(   Ni
   R[   (   R   R   R>   R"   R   R8   RO   (   R   R[   RJ   t   g(    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ñ  s
    (   R<   R=   R   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR¿   ï  s   t   TestJoinSleep_raise_errorc           B   s   e  Z d  „  Z RS(   c         C   sP   t  j j ƒ  } | j t  j d ƒ } z | j d | d t ƒ Wd  | j ƒ  Xd  S(   Ni
   R[   t   raise_error(   R   R   R>   R"   R   R8   R%   RO   (   R   R[   RJ   RÀ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ü  s
    (   R<   R=   R   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÁ   ú  s   t   TestJoinEmptyc           B   s   e  Z e Z d  „  Z RS(   c         C   s/   t  j j ƒ  } | j ƒ  } |  j | d ƒ d  S(   Ns   empty should return true(   R   R   R>   R8   R«   (   R   RJ   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test  s    (   R<   R=   R?   Ra   RÄ   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÃ     s   t	   TestSpawnc           B   s    e  Z e Z d  „  Z d „  Z RS(   c         C   s°   t  j j d ƒ } |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ t  j t j s d n d ƒ |  j t | ƒ d ƒ d  S(   Ni   i    gš™™™™™¹?gR¸…ëQÈ?g      à?(	   R   R   R>   R   RQ   R"   R   RA   t   RUNNING_ON_APPVEYOR(   R   RJ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÄ     s    c         C   s¦   t  j j d ƒ } |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ | j d ƒ } |  j | d ƒ | j ƒ  } |  j	 | d ƒ |  j t | ƒ d ƒ d  S(   Ni   i    gš™™™™™¹?g{®Gáz„?s*   waiting on a full pool should return falses    waiting to finish should be true(
   R   R   R>   R   RQ   R"   R   R8   RP   R«   (   R   RJ   R   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   testSpawnAndWait  s    (   R<   R=   R%   Ra   RÄ   RÇ   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÅ     s   	
c           c   s   d Vd Vt  ‚ d  S(   Ni   i   (   R   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   error_iter&  s    t   TestErrorInIteratorc           B   s    e  Z e Z d  „  Z d „  Z RS(   c         C   sB   t  j j d ƒ } |  j t | j d „  t ƒ  ƒ t  j d ƒ d  S(   Ni   c         S   s   d  S(   N(   Rg   (   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   1  R,   gü©ñÒMbP?(   R   R   R>   R4   R   Rz   RÈ   R   (   R   RJ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÄ   /  s    c            sB   t  j j d ƒ ‰  ‡  f d †  } |  j t | ƒ t  j d ƒ d  S(   Ni   c              s   t  ˆ  j d „  t ƒ  ƒ ƒ S(   Nc         S   s   d  S(   N(   Rg   (   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   8  R,   (   R|   R   RÈ   (    (   RJ   (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   unordered7  s    gü©ñÒMbP?(   R   R   R>   R4   R   R   (   R   RÊ   (    (   RJ   sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_unordered4  s    (   R<   R=   R?   R@   RÄ   RË   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÉ   ,  s   	c         C   s   d |  S(   Ng      ð?(    (   R	   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   divide_by>  s    t   TestErrorInHandlerc           B   s)   e  Z e Z d  „  Z d „  Z d „  Z RS(   c         C   s8   t  j j d ƒ } |  j t | j t d d d g ƒ d  S(   Ni   i   i    i   (   R   R   R>   R4   t   ZeroDivisionErrorRz   RÌ   (   R   RJ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR~   E  s    c         C   sƒ   t  j j d ƒ } | j t d d d g ƒ } |  j t | ƒ d ƒ |  j t t | ƒ |  j t | ƒ d ƒ |  j t	 t | ƒ d  S(   Ni   i    i   g      ð?g      à?(
   R   R   R>   R‡   RÌ   R   RŠ   R4   RÎ   R‹   (   R   RJ   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   test_imapI  s    c         C   sƒ   t  j j d ƒ } | j t d d d g ƒ } |  j t | ƒ d ƒ |  j t t | ƒ |  j t | ƒ d ƒ |  j t	 t | ƒ d  S(   Ni   i    i   g      ð?g      à?(
   R   R   R>   R   RÌ   R   RŠ   R4   RÎ   R‹   (   R   RJ   Rˆ   (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyR‘   Q  s    (   R<   R=   R?   R@   R~   RÏ   R‘   (    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyRÍ   B  s   		t   __main__(   gË¡E¶óý´?gìQ¸…ë¡?gìQ¸…ëÁ?(7   R    R   t   gevent.poolt   gevent.eventR   t   gevent.queueR   t   gevent.testingt   testingRA   t   gevent.testing.timingRp   R   t   unittestRv   R   R2   t   objectR1   RH   Re   Rn   Ro   Rq   Rt   R   R…   t   TIMEOUT3R{   R   t   PYPYt   WINt   RUN_LEAKCHECKSt   RUN_COVERAGEt   RUNNING_ON_CIt   EXPECT_POOR_TIMER_RESOLUTIONRu   Rd   R·   R¸   R¹   Rº   R»   t   timingt   AbstractGenericWaitTestCaseR¿   RÁ   RÃ   RÅ   RÈ   RÉ   RÌ   RÍ   R<   t   main(    (    (    sP   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__pool.pyt   <module>   sX   q	x			$		¤			
			