fix a double-free when the receiver is removed
This commit is contained in:
parent
371b874986
commit
ec7ebb0939
|
@ -80,6 +80,7 @@ class EventsListener(Thread):
|
||||||
try:
|
try:
|
||||||
event = _base.read(self.receiver, _READ_EVENT_TIMEOUT)
|
event = _base.read(self.receiver, _READ_EVENT_TIMEOUT)
|
||||||
except E.NoReceiver:
|
except E.NoReceiver:
|
||||||
|
self.receiver = 0
|
||||||
_l.warn("%s receiver disconnected", self)
|
_l.warn("%s receiver disconnected", self)
|
||||||
self.events.put(Packet(0xFF, 0xFF, None))
|
self.events.put(Packet(0xFF, 0xFF, None))
|
||||||
self._active = False
|
self._active = False
|
||||||
|
@ -146,4 +147,4 @@ class EventsListener(Thread):
|
||||||
return self.__str_cached
|
return self.__str_cached
|
||||||
|
|
||||||
def __nonzero__(self):
|
def __nonzero__(self):
|
||||||
return self._active
|
return self._active and self.receiver
|
||||||
|
|
Loading…
Reference in New Issue