mirror of
https://github.com/THU-MIG/yolov10.git
synced 2025-05-24 14:44:21 +08:00
Fix Arial.ttf
threaded multi-download bug (#3725)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
9aca61c465
commit
fadbef84e1
@ -252,6 +252,36 @@ if WINDOWS: # emoji-safe logging
|
|||||||
LOGGER.addFilter(EmojiFilter())
|
LOGGER.addFilter(EmojiFilter())
|
||||||
|
|
||||||
|
|
||||||
|
class ThreadingLocked:
|
||||||
|
"""
|
||||||
|
A decorator class for ensuring thread-safe execution of a function or method.
|
||||||
|
This class can be used as a decorator to make sure that if the decorated function
|
||||||
|
is called from multiple threads, only one thread at a time will be able to execute the function.
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
lock (threading.Lock): A lock object used to manage access to the decorated function.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
@ThreadingLocked()
|
||||||
|
def my_function():
|
||||||
|
# Your code here
|
||||||
|
pass
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.lock = threading.Lock()
|
||||||
|
|
||||||
|
def __call__(self, f):
|
||||||
|
from functools import wraps
|
||||||
|
|
||||||
|
@wraps(f)
|
||||||
|
def decorated(*args, **kwargs):
|
||||||
|
with self.lock:
|
||||||
|
return f(*args, **kwargs)
|
||||||
|
|
||||||
|
return decorated
|
||||||
|
|
||||||
|
|
||||||
def yaml_save(file='data.yaml', data=None):
|
def yaml_save(file='data.yaml', data=None):
|
||||||
"""
|
"""
|
||||||
Save YAML data to a file.
|
Save YAML data to a file.
|
||||||
|
@ -20,9 +20,9 @@ import requests
|
|||||||
import torch
|
import torch
|
||||||
from matplotlib import font_manager
|
from matplotlib import font_manager
|
||||||
|
|
||||||
from ultralytics.yolo.utils import (AUTOINSTALL, LOGGER, ONLINE, ROOT, USER_CONFIG_DIR, TryExcept, clean_url, colorstr,
|
from ultralytics.yolo.utils import (AUTOINSTALL, LOGGER, ONLINE, ROOT, USER_CONFIG_DIR, ThreadingLocked, TryExcept,
|
||||||
downloads, emojis, is_colab, is_docker, is_jupyter, is_kaggle, is_online,
|
clean_url, colorstr, downloads, emojis, is_colab, is_docker, is_jupyter, is_kaggle,
|
||||||
is_pip_package, url2file)
|
is_online, is_pip_package, url2file)
|
||||||
|
|
||||||
|
|
||||||
def is_ascii(s) -> bool:
|
def is_ascii(s) -> bool:
|
||||||
@ -155,6 +155,7 @@ def check_pip_update_available():
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
@ThreadingLocked()
|
||||||
def check_font(font='Arial.ttf'):
|
def check_font(font='Arial.ttf'):
|
||||||
"""
|
"""
|
||||||
Find font locally or download to user's configuration directory if it does not already exist.
|
Find font locally or download to user's configuration directory if it does not already exist.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user