fix for race condition

main
Kyle Johnsen 2022-02-13 06:49:53 -05:00
parent 4ce8d48349
commit 6eb92d3657
1 changed files with 9 additions and 6 deletions

View File

@ -283,12 +283,7 @@ fn client_leave_room(client: &Arc<Client>, send_to_client: bool){
println!("Will change master"); println!("Will change master");
//change the master //change the master
change_master = true; change_master = true;
for (_k,v) in clients.iter() {
if v.id != client.id {
new_master_id = v.id;
break;
}
}
} }
println!("Client leaving current room {}",&room.name); println!("Client leaving current room {}",&room.name);
@ -318,6 +313,14 @@ fn client_leave_room(client: &Arc<Client>, send_to_client: bool){
rooms.remove(&room.name); rooms.remove(&room.name);
println!("Destroyed room {}",&room.name) println!("Destroyed room {}",&room.name)
}else if change_master{ }else if change_master{
for (_k,v) in clients.iter() {
if v.id != client.id {
new_master_id = v.id;
break;
}
}
println!("Changing master to {}",new_master_id); println!("Changing master to {}",new_master_id);
for (_k,v) in clients.iter() { for (_k,v) in clients.iter() {
send_client_master_message(&v, new_master_id); send_client_master_message(&v, new_master_id);