avoid possible race condition on device initialization

This commit is contained in:
Daniel Pavel 2013-06-02 11:19:30 +02:00
parent 55bb732bb0
commit bfe7bcf1b4
1 changed files with 8 additions and 8 deletions

View File

@ -41,7 +41,7 @@ class PairedDevice(object):
self._protocol = None if self.receiver.unifying_supported else 1.0 self._protocol = None if self.receiver.unifying_supported else 1.0
self._power_switch = None if self.receiver.unifying_supported else '(unknown)' self._power_switch = None if self.receiver.unifying_supported else '(unknown)'
self._serial = None if self.receiver.unifying_supported else self.receiver.serial self.serial = _hidpp10.get_serial(self) if self.receiver.unifying_supported else self.receiver.serial
if self.receiver.unifying_supported: if self.receiver.unifying_supported:
pair_info = self.receiver.request(0x83B5, 0x20 + self.number - 1) pair_info = self.receiver.request(0x83B5, 0x20 + self.number - 1)
@ -110,8 +110,8 @@ class PairedDevice(object):
if pair_info: if pair_info:
kind = ord(pair_info[7:8]) & 0x0F kind = ord(pair_info[7:8]) & 0x0F
self._kind = _hidpp10.DEVICE_KIND[kind] self._kind = _hidpp10.DEVICE_KIND[kind]
if self._wpid is None: if self.wpid is None:
self._wpid = _strhex(pair_info[3:5]) self.wpid = _strhex(pair_info[3:5])
if self._kind is None: if self._kind is None:
if self.codename in _descriptors.DEVICES: if self.codename in _descriptors.DEVICES:
self._name, self._kind = _descriptors.DEVICES[self._codename][:2] self._name, self._kind = _descriptors.DEVICES[self._codename][:2]
@ -128,11 +128,11 @@ class PairedDevice(object):
self._firmware = _hidpp20.get_firmware(self) self._firmware = _hidpp20.get_firmware(self)
return self._firmware or () return self._firmware or ()
@property # @property
def serial(self): # def serial(self):
if self._serial is None: # if self._serial is None:
self._serial = _hidpp10.get_serial(self) # self._serial = _hidpp10.get_serial(self)
return self._serial or '?' # return self._serial or '?'
@property @property
def keys(self): def keys(self):