@@ -112,38 +112,41 @@ impl SpaceRoomList {
112
112
pub fn new ( client : Client , parent_space_id : OwnedRoomId ) -> Self {
113
113
let rooms = Arc :: new ( Mutex :: new ( ObservableVector :: < SpaceRoom > :: new ( ) ) ) ;
114
114
115
- let client_clone = client. clone ( ) ;
116
- let rooms_clone = rooms. clone ( ) ;
117
115
let all_room_updates_receiver = client. subscribe_to_all_room_updates ( ) ;
118
116
119
- let handle = spawn ( async move {
120
- pin_mut ! ( all_room_updates_receiver) ;
117
+ let handle = spawn ( {
118
+ let client = client. clone ( ) ;
119
+ let rooms = rooms. clone ( ) ;
121
120
122
- loop {
123
- match all_room_updates_receiver. recv ( ) . await {
124
- Ok ( updates) => {
125
- if updates. is_empty ( ) {
126
- continue ;
127
- }
121
+ async move {
122
+ pin_mut ! ( all_room_updates_receiver) ;
128
123
129
- let mut mutable_rooms = rooms_clone. lock ( ) ;
130
-
131
- updates. iter_all_room_ids ( ) . for_each ( |updated_room_id| {
132
- if let Some ( ( position, room) ) = mutable_rooms
133
- . clone ( )
134
- . iter ( )
135
- . find_position ( |room| & room. room_id == updated_room_id)
136
- && let Some ( update_room) = client_clone. get_room ( updated_room_id)
137
- {
138
- mutable_rooms. set (
139
- position,
140
- SpaceRoom :: new_from_known ( update_room, room. children_count ) ,
141
- ) ;
124
+ loop {
125
+ match all_room_updates_receiver. recv ( ) . await {
126
+ Ok ( updates) => {
127
+ if updates. is_empty ( ) {
128
+ continue ;
142
129
}
143
- } )
144
- }
145
- Err ( err) => {
146
- error ! ( "error when listening to room updates: {err}" ) ;
130
+
131
+ let mut mutable_rooms = rooms. lock ( ) ;
132
+
133
+ updates. iter_all_room_ids ( ) . for_each ( |updated_room_id| {
134
+ if let Some ( ( position, room) ) = mutable_rooms
135
+ . clone ( )
136
+ . iter ( )
137
+ . find_position ( |room| & room. room_id == updated_room_id)
138
+ && let Some ( update_room) = client. get_room ( updated_room_id)
139
+ {
140
+ mutable_rooms. set (
141
+ position,
142
+ SpaceRoom :: new_from_known ( update_room, room. children_count ) ,
143
+ ) ;
144
+ }
145
+ } )
146
+ }
147
+ Err ( err) => {
148
+ error ! ( "error when listening to room updates: {err}" ) ;
149
+ }
147
150
}
148
151
}
149
152
}
0 commit comments