mirror of
				https://github.com/jlu5/PyLink.git
				synced 2025-11-04 08:57:25 +01:00 
			
		
		
		
	classes: actually, loop schedulePing only when connection_thread is alive
Related to #152. Probably still not perfect, but shutdowns are somewhat faster than they were before.
This commit is contained in:
		
							parent
							
								
									91f75e4d93
								
							
						
					
					
						commit
						124100fcf5
					
				
							
								
								
									
										13
									
								
								classes.py
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								classes.py
									
									
									
									
									
								
							@ -398,14 +398,23 @@ class Irc():
 | 
			
		||||
    def schedulePing(self):
 | 
			
		||||
        """Schedules periodic pings in a loop."""
 | 
			
		||||
 | 
			
		||||
        while not self.aborted.is_set():
 | 
			
		||||
        if not self.connection_thread:
 | 
			
		||||
            # We're running in a non-threaded context, abort.
 | 
			
		||||
            log.debug('(%s) Ignoring schedulePing() request since threading '
 | 
			
		||||
                      'seems to be disabled.', self.name)
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # Only run this loop for the duration where the listener thread
 | 
			
		||||
        # is active! The goal is to stop the ping threads as soon as possible
 | 
			
		||||
        # after the relevant listeners die.
 | 
			
		||||
        while self.connection_thread.is_alive():
 | 
			
		||||
            log.debug('(%s) Ping sent at %s', self.name, time.time())
 | 
			
		||||
            self.proto.pingServer()
 | 
			
		||||
 | 
			
		||||
            # Sleep for the time (frequency) between pings.
 | 
			
		||||
            time.sleep(self.pingfreq)
 | 
			
		||||
 | 
			
		||||
        log.debug('(%s) Canceling ping_thread at %s due to self.aborted being set.', self.name, time.time())
 | 
			
		||||
        log.debug('(%s) Canceling ping_thread at %s due to listener thread stopping.', self.name, time.time())
 | 
			
		||||
 | 
			
		||||
    def spawnMain(self):
 | 
			
		||||
        """Spawns the main PyLink client."""
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user