Note that there are some explanatory texts on larger screens.

plurals
  1. POrequestloop(loopCondition) doesn't release even after loopCondition is False
    primarykey
    data
    text
    <p>I have some issues with the requestLoop methode of the Pyro4.Daemon object.</p> <p>What I want is to call remotely a "stop()" method for releasing the requestLoop function and shutdown my daemon.</p> <p>This small exemple doesn't work</p> <p>SERVER</p> <pre><code>#!/usr/bin/python # -*- coding: utf-8 -*- from daemon import Pyro4 class Audit(object): def start_audit(self): with Pyro4.Daemon() as daemon: self_uri = daemon.register(self) ns = Pyro4.locateNS() ns.register("Audit", self_uri) self.running = True print("starting") daemon.requestLoop(loopCondition=self.still_running) print("stopped") self.running = None def hi(self, string): print string def stop(self): self.running = False def still_running(self): return self.running def main(): # lancement de l'auditor auditor = Audit() auditor.start_audit() if __name__ == "__main__" : main() </code></pre> <p>CLIENT</p> <pre><code>import Pyro4 def main(): with Pyro4.Proxy("PYRONAME:Audit") as au: au.hi("hello") au.hi("another hi") au.stop() </code></pre> <p>What I expect is to see the server print "hello" and "another hi" and then shutdown.</p> <p>But the shutdown doesn't happen, the server is still blocked in the requestloop method. I can use my proxy as long as I want.</p> <p>BUT, if I create another client, at the first remote call, the server will shutdown and the client will throw an error: </p> <pre><code>Pyro4.errors.ConnectionClosedError: receiving: not enough data </code></pre> <p>All my test are saying that I need to create a 2nd proxy and throw the exeption for pass the requestloop on my server.</p> <p>Does any one have a idea of how to clean this issue ?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload