@@ -14,10 +14,11 @@ use core::net::{Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV6};
14
14
use core:: pin:: pin;
15
15
16
16
use edge_nal:: { UdpBind , UdpSplit } ;
17
- use embassy_futures:: select:: { select4, Either4 } ;
17
+ use embassy_futures:: select:: { select , select4, Either4 } ;
18
18
use embassy_sync:: blocking_mutex:: raw:: NoopRawMutex ;
19
19
20
20
use persist:: { KvBlobBuffer , KvBlobStore , MatterPersist , NetworkPersist } ;
21
+
21
22
use rs_matter:: dm:: clusters:: basic_info:: BasicInfoConfig ;
22
23
use rs_matter:: dm:: clusters:: dev_att:: DevAttDataFetcher ;
23
24
use rs_matter:: dm:: clusters:: gen_diag:: NetifDiag ;
@@ -31,6 +32,7 @@ use rs_matter::transport::network::{Address, ChainedNetwork, NetworkReceive, Net
31
32
use rs_matter:: utils:: epoch:: Epoch ;
32
33
use rs_matter:: utils:: init:: { init, Init } ;
33
34
use rs_matter:: utils:: rand:: Rand ;
35
+ use rs_matter:: utils:: select:: Coalesce ;
34
36
use rs_matter:: utils:: storage:: pooled:: PooledBuffers ;
35
37
use rs_matter:: { BasicCommData , Matter , MATTER_PORT } ;
36
38
@@ -477,7 +479,9 @@ where
477
479
// Reset the Matter transport buffers and all sessions first
478
480
// self.matter().reset_transport()?;
479
481
480
- self . run_responder ( handler) . await
482
+ select ( self . run_responder ( & handler) , handler. run ( ) )
483
+ . coalesce ( )
484
+ . await
481
485
}
482
486
483
487
async fn run_psm < S , C > ( & self , persist : & MatterPersist < ' _ , S , C > ) -> Result < ( ) , Error >
0 commit comments