Si prega di confermare che questo codice XMPP non è threadsafe
-
06-09-2019 - |
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?
Soluzione
sembra che sia un errore noto .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow