ó
Ê½÷Xc           @` s|   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m Z d  d l	 m
 Z
 m Z m Z d „  Z d „  Z d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_equalt   assert_raises(   t   ReentrancyLockt   non_reentrantt   ReentrancyErrorc          ` s¨   g  ‰ t  d ƒ ‰  ‡  ‡ f d †  ‰ g  t d ƒ D]$ }  t j d |  ‡ f d † ƒ ^ q1 } x | D] } | j ƒ  qb Wx | D] } | j ƒ  q} Wt ˆ t ˆ ƒ ƒ d  S(   Nt   failurec         ` s3   ˆ  ' t  j d d |  ƒ ˆ j |  ƒ Wd  QXd  S(   Ng{®Gáz„?i   (   t   timet   sleept   append(   t   k(   t   lockt   results(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyt   worker   s    i   t   targetc         ` s
   ˆ  |  ƒ S(   N(    (   R   (   R   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyt   <lambda>   s    (   R   t   ranget	   threadingt   Threadt   startt   joinR   t   sorted(   R   t   threadst   t(    (   R   R   R   sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyt   test_parallel_threads   s    4c           ` s,   t  ƒ  ‡  f d †  ƒ ‰  t t ˆ  d ƒ d  S(   Nc         ` s
   ˆ  |  ƒ S(   N(    (   t   x(   t   func(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyR       s    i    (   R   R   R   (    (    (   R   sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyt   test_reentering   s    (   t
   __future__R    R   R   R   R	   t   numpy.testingR   R   t   scipy._lib._threadsafetyR   R   R   R   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/_lib/tests/test__threadsafety.pyt   <module>   s   	