Check if connection is running before connecting.#296
Check if connection is running before connecting.#296ilar wants to merge 4 commits intopschmitt:mainfrom
Conversation
| self.periodic_connection_running = True | ||
| while not self.stop_connection: | ||
| try: | ||
| self._connect() | ||
| if not self.periodic_connection_running: | ||
| self._connect() | ||
| self.periodic_connection_running = True |
There was a problem hiding this comment.
Are you sure this does what you think it does? This looks like a mutex to me and with this you're defeating the purpose of the mutex?
There was a problem hiding this comment.
self.periodic_connection_running is just the current state of whether or not we have a current active connection.
self.stop_connection is the mutex-like that actually controls whether or not the connection SHOULD be stopped.
If stop_connection == False and periodic_connection_running == False, we need to restart the connection- anything else we just let pass through, because we're either already connected and should be, or stopping the connection and falling out of the while loop.
There was a problem hiding this comment.
Hmmm it doesn't look like this. self.periodic_connection_running is just prohibiting multiple while-loops from running. With the change it will be possible to start it multiple times.
There was a problem hiding this comment.
Why would multiple while loops be running? That would require calling periodic_connection multiple times (which would raise a runtime error, as you can only start() a thread no more than once).
Even if we did call it more than once, periodic_connection still has the guard against that on line 159.
Finally, a key takeaway here is that we're not running _connect() from periodic_connection any more than we already were- we're running it less, as we're not running it where we would have before- that is, when we already have a connection, which is the entire cause of the issue people have with 'periodic mode' constantly reconnecting. That's the only real change here.
c6e79b1 to
0c0dcbd
Compare
|
Any update? |
Still just waiting for pschmitt to merge it. |
Don't force-reconnect every delay seconds if the connection is already running.