سؤال

أنا أقرأ التعليمات البرمجية المصدر إلى 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 حية داخل فئة تسمى الجلسة. سيحاول مؤشر ترابط منفصل من الإعدام إغلاق مثيل XMPPConnection عن طريق الاتصال بجلسةاغلق(). وبعد كما أراها، سأضطر إلى إخبار جلسة التعاون لإغلاق XMPPCONNECT من خلال الحصول على Mutex أو شيء من هذا. صيح؟

هل كانت مفيدة؟

المحلول

يبدو أنه علة معروفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top