U
    ?h                     @   sd   d dl Z d dlmZ d dlZd dlmZ d dlmZm	Z	 dd Z
G dd de	Zed	kr`e  dS )
    N)Queue)cuda)unittestContextResettingTestCasec              
   C   st   zBt d t  }td}t j||d}|  ~~t   W n, tk
rn } z| 	| W 5 d }~X Y nX d S )Nr   d   )stream)
r   Zselect_devicer   npZarangeZ	to_deviceZsynchronizeclose	Exceptionput)exception_queuer   AZdAe r   ]/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/cudadrv/test_select_device.py	newthread   s    

r   c                   @   s   e Zd Zdd ZdS )TestSelectDevicec                 C   s`   t  }tdD ]$}tjt|fd}|  |  qg }| sP||	  q8| 
|g  d S )N
   )targetargs)r   range	threadingThreadr   startjoinemptyappendgetZassertEqual)selfr   it
exceptionsr   r   r   test_select_device   s    
z#TestSelectDevice.test_select_deviceN)__name__
__module____qualname__r"   r   r   r   r   r      s   r   __main__)r   queuer   numpyr   Znumbar   Znumba.cuda.testingr   r   r   r   r#   mainr   r   r   r   <module>   s   