Regarder une boîte aux lettres pour le téléphone, pas seulement pour le navigateur

FixEmailService
Expédié
6 septembre 2026 à 23:55 UTC
Auteur
Kamo
Commite
359d620

Un auditeur IMAP IDLE est la seule chose qui remarque un message arrivant; il publie mail.inbox., qui est ce qui, à terme, demande à MediaService bourdonnement d'un téléphone. Ces auditeurs ont été créés par un navigateur abonné à la mail WebSocket et fermé quand le dernier onglet s'est déroulé - donc une boîte aux lettres a été observée Ce n'est que lorsque quelqu'un le regardait déjà. Sans navigateur n'ouvre rien J'ai regardé la boîte de réception, rien n'a été publié, et le téléphone n'a jamais été dit. Membres a indiqué que la seule façon de découvrir un nouveau courrier était d'ouvrir la boîte de réception et de regarder, qui était tout à fait juste: il n'y avait pas d'autre moyen de les atteindre. La propriété de l'IDLE cesse donc d'être la propriété d'une session WebSocket. MailboxIdleService détient les auditeurs et compte qui veut chaque boîte aux lettres Watched; MobileMailboxWatcher en retient un au nom de tout membre titulaire d'un écoutez avec elle. Une boîte aux lettres peut maintenant légitimement être regardée deux fois à travers le groupe - ici et par l'écoute d'un navigateur sur l'autre pod - et chaque auditeur rapporte la même chose arrivée. MobileMailPushSender reconnaît la répétition du message propre identité et bourdonnements une fois; sa clé d'effondrement était System.nanoTime(), unique par publier plutôt que par message, ce qui aurait fait ressembler deux auditeurs deux messages à chaque porte en aval. La coordination des auditeurs serait plutôt signifie un bail, et un bail détenu par un gousse dont l'auditeur est discrètement décédé est un La boîte aux lettres que personne ne regarde - l'échec que cela existe pour éviter.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation