Tag: greenlet

Python客户端调用中的双向ZeroRPC导致AssertionError

我的安装程序有一个Node.js子代,它创build了一个Python对象的2路ZeroRPC会话对。 python方面是这样的: class MyClass: def __init__(self, socketpath): self.client = zerorpc.Client() self.client.connect(socketpath) def sendtoclient(self, msg): self.client.receiveMessage(msg) if __name__ == '__main__': zpc = zerorpc.Server(MyClass(sys.argv[1])) zpc.bind(sys.argv[1] + "_python") zpc.run() Node.js子客户端可以调用Python服务器上的方法,但该服务器中的客户端不能在Node.js子服务器上调用,而不会收到exception: Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/gevent/queue.py", line 271, in _unlock getter.switch(getter) File "/usr/lib64/python2.6/site-packages/gevent/hub.py", line 534, in switch assert getcurrent() is self.hub, "Can only use Waiter.switch method from […]