Restart contact streams after storage recovery
Release cached path snapshots before resetting contacts while retaining the requesting transport and table revision for a complete stream restart. Keep explicit session cancellation unchanged and avoid copying uncached contact buffers. Cover cached and uncached recovery, transport isolation, empty reloads, backpressure, and the former cancellation as a negative control.
This commit is contained in:
1 parent
587700a36a
commit
e5706bafa1
5 files changed
+232
-10
No files matched your search
@@ -7526,7 +7526,12 @@ void MyMesh::onContactCacheFlushed() {
|
||||
}
|
||||
|
||||
bool MyMesh::resetContactsForRecovery() {
|
||||
stopContactsIterator();
|
||||
// Release retained paths before resetting the table. Keep the stream owner
|
||||
// so its changed table revision restarts a complete list on the next pass.
|
||||
#if MESH_CONTACT_CACHE
|
||||
_iter_pending_contact = ContactInfo();
|
||||
#endif
|
||||
_iter_contact_pending = false;
|
||||
resetContacts();
|
||||
MyMesh::onContactCacheFlushed();
|
||||
return true;
|
||||
|
||||
Reference in new issue
Block a user