fix for race condition
parent
4ce8d48349
commit
6eb92d3657
15
src/main.rs
15
src/main.rs
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue