mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-02-03 11:31:53 +08:00
moved kvmd to the root
This commit is contained in:
38
kvmd/aioregion.py
Normal file
38
kvmd/aioregion.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import types
|
||||
|
||||
from typing import Type
|
||||
|
||||
|
||||
# =====
|
||||
class RegionIsBusyError(Exception):
|
||||
def __init__(self) -> None:
|
||||
super().__init__("Performing another operation, please try again later")
|
||||
|
||||
|
||||
class AioExclusiveRegion:
|
||||
def __init__(self, exc_type: Type[RegionIsBusyError]) -> None:
|
||||
self.__exc_type = exc_type
|
||||
self.__busy = False
|
||||
|
||||
def is_busy(self) -> bool:
|
||||
return self.__busy
|
||||
|
||||
def enter(self) -> None:
|
||||
if not self.__busy:
|
||||
self.__busy = True
|
||||
return
|
||||
raise self.__exc_type()
|
||||
|
||||
def exit(self) -> None:
|
||||
self.__busy = False
|
||||
|
||||
def __enter__(self) -> None:
|
||||
self.enter()
|
||||
|
||||
def __exit__(
|
||||
self,
|
||||
_exc_type: Type[BaseException],
|
||||
_exc: BaseException,
|
||||
_tb: types.TracebackType,
|
||||
) -> None:
|
||||
self.exit()
|
||||
Reference in New Issue
Block a user