Domanda

sto leggendo il codice sorgente per l'API Smack ed il metodo XMPPConnection # disconnect è simile al seguente:

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;
}

Nel mio scenario, sto Memorizzazione di un XMPPConnection dal vivo all'interno di una classe chiamata Session. Un thread separato di esecuzione tenterà di chiudere la mia istanza di XMPPConnection chiamando Session # shutdown () . Come la vedo io, dovrò dire a cooperativo sessione per chiudere la XMPPConnection con l'acquisizione di un mutex o qualcosa del genere. Corretto?

È stato utile?

Soluzione

sembra che sia un errore noto .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top