-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
V primeru, ko v povratni funkciji kanala 0 zaženemo novo nit, ki pošlje sporočilo na kanal 1, se izvajanje ustavi po nedoločenem času (v primeru, ko na kanal 0 pride velika količina zaporednih sporočil).
Prejemnik:
import time
import _thread
from echolib import pyecho
class P0():
def __init__(self):
self.loop = pyecho.IOLoop()
self.client = pyecho.Client()
self.loop.add_handler(self.client)
self.input = pyecho.Subscriber(self.client, "input", "int", self.callback)
self.output = pyecho.Publisher(self.client, "output", "int")
def callback(self, message):
print(pyecho.MessageReader(message).readInt())
_thread.start_new_thread(self.send, ())
def send(self):
w = pyecho.MessageWriter()
w.writeInt(1)
self.output.send(w)
def main():
p = P0()
try:
while p.loop.wait(10):
time.sleep(0.001)
except KeyboardInterrupt:
pass
if __name__ == "__main__":
main()
Pošiljatelj:
import time
import _thread
from echolib import pyecho
class P1():
def __init__(self):
self.loop = pyecho.IOLoop()
self.client = pyecho.Client()
self.loop.add_handler(self.client)
self.output = pyecho.Publisher(self.client, "input", "int")
def main():
p = P1()
c = 0
try:
while p.loop.wait(10):
w = pyecho.MessageWriter()
w.writeInt(c)
c += 1
p.output.send(w)
time.sleep(0.001)
except KeyboardInterrupt:
pass
if __name__ == "__main__":
main()
Metadata
Metadata
Assignees
Labels
No labels