@@ -148,16 +148,21 @@ def recv(self):
148148
149149 # High-level adapter messages
150150 if msg_type == 'startPairing' :
151- self .adapter .start_pairing (msg ['data' ]['timeout' ])
151+ self .make_thread (self .adapter .start_pairing ,
152+ args = (msg ['data' ]['timeout' ],))
152153 continue
153154
154155 if msg_type == 'cancelPairing' :
155- self .adapter .cancel_pairing ( )
156+ self .make_thread ( self . adapter .cancel_pairing )
156157 continue
157158
158159 if msg_type == 'unloadAdapter' :
159- self .adapter .unload ()
160- self .send ('adapterUnloaded' , {'adapterId' , self .adapter .id })
160+ def unload_fn (proxy ):
161+ proxy .adapter .unload ()
162+ proxy .send ('adapterUnloaded' ,
163+ {'adapterId' , proxy .adapter .id })
164+
165+ self .make_thread (unload_fn , args = (self ,))
161166 continue
162167
163168 if msg_type == 'unloadPlugin' :
@@ -170,19 +175,29 @@ def recv(self):
170175 'ignoring.' )
171176 continue
172177
173- device_id = msg ['data' ]['device_id ' ]
178+ device_id = msg ['data' ]['deviceId ' ]
174179 if msg_type == 'removeThing' :
175- self .adapter .remove_thing (device_id )
180+ self .make_thread ( self . adapter .remove_thing , args = (device_id ,) )
176181 continue
177182
178183 if msg_type == 'cancelRemoveThing' :
179- self .adapter .cancel_remove_thing (device_id )
184+ self .make_thread (self .adapter .cancel_remove_thing ,
185+ args = (device_id ,))
180186 continue
181187
182188 if msg_type == 'setProperty' :
183- dev = self .adapter .get_device (device_id )
184- if dev :
185- prop = dev .get_property (msg ['data' ]['propertyName' ])
186- if prop :
187- prop .set_value (msg ['data' ]['propertyValue' ])
188- continue
189+ def set_prop_fn (proxy ):
190+ dev = proxy .adapter .get_device (device_id )
191+ if dev :
192+ prop = dev .find_property (msg ['data' ]['propertyName' ])
193+ if prop :
194+ prop .set_value (msg ['data' ]['propertyValue' ])
195+
196+ self .make_thread (set_prop_fn , args = (self ,))
197+ continue
198+
199+ @staticmethod
200+ def make_thread (target , args = ()):
201+ t = threading .Thread (target = target , args = args )
202+ t .daemon = True
203+ t .start ()
0 commit comments