fix memory leak

This commit is contained in:
Maple 2025-07-31 14:40:21 +02:00
commit 2c7cd2e83c
3 changed files with 10 additions and 7 deletions

View file

@ -325,10 +325,5 @@ impl ToTokens for RmcProtocolData{
self.generate_raw_trait(tokens); self.generate_raw_trait(tokens);
self.generate_raw_info(tokens); self.generate_raw_info(tokens);
self.generate_raw_remote_trait(tokens); self.generate_raw_remote_trait(tokens);
} }
} }

View file

@ -50,7 +50,7 @@ impl MatchmakeManager{
async fn garbage_collect(&self){ async fn garbage_collect(&self){
info!("running rnex garbage collector over all sessions and users"); info!("running rnex garbage collector over all sessions and users");
let idx = 0; let mut idx = 0;
let mut to_be_deleted_gids = Vec::new(); let mut to_be_deleted_gids = Vec::new();
@ -69,6 +69,8 @@ impl MatchmakeManager{
if !session.is_reachable(){ if !session.is_reachable(){
to_be_deleted_gids.push(gid); to_be_deleted_gids.push(gid);
} }
idx += 1;
} }
let mut sessions = self.sessions.write().await; let mut sessions = self.sessions.write().await;

View file

@ -270,6 +270,12 @@ impl MatchmakeExtension for User {
let mut session = session.lock().await; let mut session = session.lock().await;
if session.session.user_password_enabled{
if join_session_param.user_password != session.session.user_password{
return Err(ErrorCode::RendezVous_InvalidPassword)
}
}
session.connected_players.retain(|v| v.upgrade().is_some_and(|v| v.pid != self.pid)); session.connected_players.retain(|v| v.upgrade().is_some_and(|v| v.pid != self.pid));
let mut joining_players = vec![self.this.clone()]; let mut joining_players = vec![self.this.clone()];