mirror of
https://github.com/osukey/osukey.git
synced 2025-05-04 21:27:22 +09:00
Allow all StatefulMultiplayerClient schedules to run inline
Fixes test failures due to not allowing to do so, therefore inverting execution order in some cases - for example, calling JoinRoom(room); LeaveRoom(); on the update thread would invert execution order due to the first being unscheduled but the second being scheduled.
This commit is contained in:
parent
dae27fefe4
commit
04d54c40db
@ -126,7 +126,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
|
|
||||||
public virtual Task LeaveRoom()
|
public virtual Task LeaveRoom()
|
||||||
{
|
{
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -135,7 +135,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
Room = null;
|
Room = null;
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -190,7 +190,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -215,7 +215,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
}
|
}
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
|
|
||||||
await PopulateUser(user);
|
await PopulateUser(user);
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -239,7 +239,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
Room.Users.Add(user);
|
Room.Users.Add(user);
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task IMultiplayerClient.UserLeft(MultiplayerRoomUser user)
|
Task IMultiplayerClient.UserLeft(MultiplayerRoomUser user)
|
||||||
@ -247,7 +247,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -256,7 +256,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
PlayingUsers.Remove(user.UserID);
|
PlayingUsers.Remove(user.UserID);
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -266,7 +266,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -279,7 +279,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
apiRoom.Host.Value = user?.User;
|
apiRoom.Host.Value = user?.User;
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -295,7 +295,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -306,7 +306,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
PlayingUsers.Remove(userId);
|
PlayingUsers.Remove(userId);
|
||||||
|
|
||||||
RoomChanged?.Invoke();
|
RoomChanged?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -316,13 +316,13 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LoadRequested?.Invoke();
|
LoadRequested?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -332,7 +332,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -340,7 +340,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
PlayingUsers.AddRange(Room.Users.Where(u => u.State == MultiplayerUserState.Playing).Select(u => u.UserID));
|
PlayingUsers.AddRange(Room.Users.Where(u => u.State == MultiplayerUserState.Playing).Select(u => u.UserID));
|
||||||
|
|
||||||
MatchStarted?.Invoke();
|
MatchStarted?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -350,13 +350,13 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ResultsReady?.Invoke();
|
ResultsReady?.Invoke();
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -404,7 +404,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Schedule(() =>
|
Scheduler.Add(() =>
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
return;
|
return;
|
||||||
@ -425,7 +425,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
req.Success += res => updatePlaylist(settings, res);
|
req.Success += res => updatePlaylist(settings, res);
|
||||||
|
|
||||||
api.Queue(req);
|
api.Queue(req);
|
||||||
});
|
}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlaylist(MultiplayerRoomSettings settings, APIBeatmapSet onlineSet)
|
private void updatePlaylist(MultiplayerRoomSettings settings, APIBeatmapSet onlineSet)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user