diff --git a/src/calibre/devices/mtp/base.py b/src/calibre/devices/mtp/base.py index f29f525b30..7f20b70b39 100644 --- a/src/calibre/devices/mtp/base.py +++ b/src/calibre/devices/mtp/base.py @@ -7,8 +7,17 @@ __license__ = 'GPL v3' __copyright__ = '2012, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from functools import wraps + from calibre.devices.interface import DevicePlugin +def synchronous(func): + @wraps(func) + def synchronizer(self, *args, **kwargs): + with self.lock: + return func(self, *args, **kwargs) + return synchronizer + class MTPDeviceBase(DevicePlugin): name = 'SmartDevice App Interface' gui_name = _('MTP Device') diff --git a/src/calibre/devices/mtp/unix/driver.py b/src/calibre/devices/mtp/unix/driver.py index 4f5908d847..d8cd7ee01d 100644 --- a/src/calibre/devices/mtp/unix/driver.py +++ b/src/calibre/devices/mtp/unix/driver.py @@ -9,23 +9,15 @@ __docformat__ = 'restructuredtext en' import time, operator from threading import RLock -from functools import wraps from itertools import chain from collections import deque, OrderedDict from io import BytesIO from calibre import prints from calibre.devices.errors import OpenFailed -from calibre.devices.mtp.base import MTPDeviceBase +from calibre.devices.mtp.base import MTPDeviceBase, synchronous from calibre.devices.mtp.unix.detect import MTPDetect -def synchronous(func): - @wraps(func) - def synchronizer(self, *args, **kwargs): - with self.lock: - return func(self, *args, **kwargs) - return synchronizer - class FilesystemCache(object): def __init__(self, files, folders):