1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 04:22:54 +08:00
osu-lazer/osu.Game/Online/Multiplayer
Bartłomiej Dach eb53e32792 Use task completion source for room join flow
On Android, users were unable to join or create multiplayer rooms. The
root cause of that was that the both the wait and set of the
`ManualResetEvent` in `getRoomUsers` occurred on the same thread, which
created a chicken-and-egg situation - the set could not proceed until
the wait had actually completed.

Resolve by substituting the `ManualResetEvent` for a
`TaskCompletionSource` to achieve a promise-style task, which the
previous code was a crude approximation of anyway.

Closes #11385.
2021-01-17 14:40:22 +01:00
..
IMultiplayerClient.cs Fix up code comments 2021-01-11 20:31:52 +01:00
IMultiplayerLoungeServer.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
IMultiplayerRoomServer.cs Fix up code comments 2021-01-11 20:31:52 +01:00
IMultiplayerServer.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
InvalidStateChangeException.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
InvalidStateException.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
MultiplayerClient.cs Add beatmap availability change state & event methods 2021-01-03 05:48:49 +03:00
MultiplayerRoom.cs Move thread safety / locking logic from MultiplayerRoom 2020-12-30 20:24:50 +09:00
MultiplayerRoomSettings.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
MultiplayerRoomState.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
MultiplayerRoomUser.cs Fix up code comments 2021-01-11 20:31:52 +01:00
MultiplayerUserState.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
NotHostException.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
NotJoinedRoomException.cs RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
StatefulMultiplayerClient.cs Use task completion source for room join flow 2021-01-17 14:40:22 +01:00