twisted .loseConnection does not immediately lose connection?
        Posted  
        
            by 
                Claudiu
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Claudiu
        
        
        
        Published on 2010-12-27T20:51:56Z
        Indexed on 
            2010/12/27
            20:53 UTC
        
        
        Read the original article
        Hit count: 196
        
I have a server with a few clients connected to it. When CTRL+C is hit (that is, reactor starts shutting down), I want to close all my connections, wait until they are cleanly closed, and then stop. I do this by going through the connected clients' transports and calling .loseConnection(). On the ones that are connected locally, they immediately disconnect. However, on one that is connected through the internet, the connection is not immediately lost. Communication stops - and closing the client program no longer even tells the server that the connection has died, although it does before calling .loseConnection() - but the connection is not deemed 'lost' until a few minutes later after I send a few heartbeat requests from the server. 
I understand that if a connection dies, there's no way for the server to know unless it tries to send some data. But if I specifically ask for a connection to be closed, why does it not just close/disconnect immediately? Am I calling the wrong function?
© Stack Overflow or respective owner