o
    ۾i                     @   sh   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r2e  dS dS )
    N)Queue)cuda)unittestContextResettingTestCasec              
   C   sv   z"t d t  }td}t j||d}|  ~~t   W d S  ty: } z| 	| W Y d }~d S d }~ww )Nr   d   )stream)
r   select_devicer   nparange	to_devicesynchronizeclose	Exceptionput)exception_queuer   AdAe r   _/home/ubuntu/.local/lib/python3.10/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   sf   t  }tdD ]}tjt|fd}|  |  qg }| s+||	  | r | 
|g  d S )N
   )targetargs)r   range	threadingThreadr   startjoinemptyappendget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	   numbar   numba.cuda.testingr   r   r   r   r)   mainr   r   r   r   <module>   s   