File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -262,19 +262,19 @@ where
262262 }
263263 let request_hash = request_hash. unwrap ( ) ;
264264 let key = discover. key ( endpoint) ;
265- let weighted_list = match self . router . entry ( key) {
266- Entry :: Occupied ( e ) => e . get ( ) . clone ( ) ,
267- Entry :: Vacant ( e ) => {
268- let instances = Arc :: new (
269- self . build_weighted_instances (
270- discover
271- . discover ( endpoint)
272- . await
273- . map_err ( |err| err. into ( ) ) ?,
274- ) ,
275- ) ;
276- e . insert ( instances ) . value ( ) . clone ( )
277- }
265+ let weighted_list = if let Some ( instances ) = self . router . get ( & key) {
266+ instances . clone ( )
267+ } else {
268+ let instances = Arc :: new (
269+ self . build_weighted_instances (
270+ discover
271+ . discover ( endpoint)
272+ . await
273+ . map_err ( |err| err. into ( ) ) ?,
274+ ) ,
275+ ) ;
276+ self . router . insert ( key , Arc :: clone ( & instances ) ) ;
277+ instances
278278 } ;
279279 Ok ( InstancePicker {
280280 shared_instances : weighted_list,
Original file line number Diff line number Diff line change @@ -141,17 +141,17 @@ where
141141 discover : & ' future D ,
142142 ) -> Result < Self :: InstanceIter , LoadBalanceError > {
143143 let key = discover. key ( endpoint) ;
144- let weighted_list = match self . router . entry ( key) {
145- Entry :: Occupied ( e ) => e . get ( ) . clone ( ) ,
146- Entry :: Vacant ( e ) => {
147- let instances = Arc :: new ( WeightedInstances :: from (
148- discover
149- . discover ( endpoint)
150- . await
151- . map_err ( |err| err. into ( ) ) ?,
152- ) ) ;
153- e . insert ( instances ) . value ( ) . clone ( )
154- }
144+ let weighted_list = if let Some ( instances ) = self . router . get ( & key) {
145+ instances . clone ( )
146+ } else {
147+ let instances = Arc :: new ( WeightedInstances :: from (
148+ discover
149+ . discover ( endpoint)
150+ . await
151+ . map_err ( |err| err. into ( ) ) ?,
152+ ) ) ;
153+ self . router . insert ( key , Arc :: clone ( & instances ) ) ;
154+ instances
155155 } ;
156156 let sum_of_weights = weighted_list. sum_of_weights ;
157157 Ok ( InstancePicker {
You can’t perform that action at this time.
0 commit comments