fixed msd deadlock

This commit is contained in:
Devaev Maxim 2018-07-17 00:10:38 +03:00
parent ddabd32807
commit caf7f4c99b

View File

@ -236,11 +236,14 @@ class MassStorageDevice: # pylint: disable=too-many-instance-attributes
@_msd_operated @_msd_operated
async def __aenter__(self) -> "MassStorageDevice": async def __aenter__(self) -> "MassStorageDevice":
self.__region.enter() self.__region.enter()
try:
if not self.__device_info: if not self.__device_info:
raise MsdIsNotConnectedToKvmError() raise MsdIsNotConnectedToKvmError()
self.__device_file = await aiofiles.open(self.__device_info.path, mode="w+b", buffering=0) self.__device_file = await aiofiles.open(self.__device_info.path, mode="w+b", buffering=0)
self.__written = 0 self.__written = 0
return self return self
finally:
self.__region.exit()
async def write_image_info(self, name: str, complete: bool) -> None: async def write_image_info(self, name: str, complete: bool) -> None:
assert self.__device_file assert self.__device_file