On 10/26/2016 12:22 PM, pozz wrote:
Il 26/10/2016 09:13, pozz ha scritto:
> [...]
When the user press Start button (the pressed handler is in the GUI
class):
self.comm_active = True
threading.Thread(target=self.comm_thread).start()
The backend thread is:
def comm_thread(self):
while self.comm_active:
self.device.get_status()
GLib.idle_add(self.polling_received)
time.sleep(1)
self.m.close()
> [...]
Now I have some concerns even in using self.comm_active. It is a
boolean variable accessed by the GUI thread (inside Start/Stop buttons
handler) and backend thread (in the "while self.comm_active" instruction).
Is it safe to access this variable from two different threads? Should I
implement a safer and more complex mechanism? If yes, what mechanism?
from http://nedbatchelder.com/blog/201204/two_problems.html
Some people, when confronted with a problem, think, "I know, I'll use
threads," and then two they hav erpoblesms.
I suggest you write a GUI that make synchronous calls to a remote
application, if possible. If the remote app is in python, you have
access to remote protocols already written for you, Pyro is one of them,
you can skip the low level communication part.
jm
--
https://mail.python.org/mailman/listinfo/python-list