Spaces:
Running
Running
from typing import List, Union, ContextManager | |
import threading | |
from contextlib import nullcontext | |
THREAD_LOCK : threading.Lock = threading.Lock() | |
THREAD_SEMAPHORE : threading.Semaphore = threading.Semaphore() | |
NULL_CONTEXT : ContextManager[None] = nullcontext() | |
def thread_lock() -> threading.Lock: | |
return THREAD_LOCK | |
def thread_semaphore() -> threading.Semaphore: | |
return THREAD_SEMAPHORE | |
def conditional_thread_semaphore(execution_providers : List[str]) -> Union[threading.Semaphore, ContextManager[None]]: | |
if 'DmlExecutionProvider' in execution_providers: | |
return THREAD_SEMAPHORE | |
return NULL_CONTEXT | |