Пожалуйста, подтвердите, что этот XMPP-код не является потокобезопасным

StackOverflow https://stackoverflow.com/questions/732680

Вопрос

Я читаю исходный код Smack api и метода XMPPConnection#отключиться выглядит примерно так:

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#выключение ().Как я вижу, мне придется совместно сообщить сеансу закрыть XMPPConnection, получив мьютекс или что-то в этом роде.Правильно?

Это было полезно?

Решение

Похоже, что это известная ошибка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top