1
Я читаю исходный код АНИ Смак и метод XMPPConnection # разъединение выглядит следующим образом:Пожалуйста, подтвердите, что этот XMPP код не потокобезопасны
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;
}
В моем случае, я храню живое XMPPConnection внутри класса Session. Отдельный поток выполнения попытается закрыть мой экземпляр XMPPConnection, вызвав Session # shutdown(). Как я вижу, мне придется совместно сказать Session, чтобы закрыть XMPPConnection, приобретя мьютекс или что-то в этом роде. Верный?
Спасибо за указание на ошибку. Тогда неизбежно, что я синхронизируюсь извне, прежде чем позвонить ему. Мир. –