@Override
    public void process_term (int linger_)
    {
        if (timer_started) {
            io_object.cancel_timer (reconnect_timer_id);
            timer_started = false;
        }
        
        if (handle_valid) {
            io_object.rm_fd (handle);
            handle_valid = false;
        }

        if (handle != null)
            close ();
        
        super.process_term (linger_);
    }