Question

Je lis le code source à l'api Smack et la méthode XMPPConnection # disconnect ressemble à ceci:

public void disconnect(Presence unavailablePresence) {
    // If not connected, ignore this request.
    if (packetReader == null || packetWriter == null) {
        return;
    }

    shutdown(unavailablePresence);

    if (roster != null) {
        roster.cleanup();
        roster = null;
    }

    wasAuthenticated = false;

    packetWriter.cleanup();
    packetWriter = null;
    packetReader.cleanup();
    packetReader = null;
}

Dans mon scénario, je stocke un XMPPConnection en direct dans une classe appelée session. Un fil d'exécution séparé tentera de fermer mon instance de XMPPConnection en appelant Session # shutdown () . Comme je le vois, je dois dire en coopération pour fermer la session XMPPConnection par l'acquisition d'un mutex ou quelque chose. Correct?

Était-ce utile?

La solution

On dirait que c'est un bug connu .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top