Commit Graph

56 Commits

Author SHA1 Message Date
6840e906e7 watchedUsers -> watchedUsersRefCounts 2022-08-25 09:50:52 +03:00
7e5086c8d7 Fix spectator client not handling multiple watch calls properly 2022-08-24 10:02:21 +03:00
fd09155990 Revert blocking call when sending spectator frames
There are a lot of these requests, and we don't really care about
waiting on them to finish sending. This may have negatively affected
send performance for users with very high latency.

Reverts part of 0533249d11.

Addresses concerns in https://github.com/ppy/osu/discussions/19429#discussioncomment-3276400.
2022-07-29 12:24:54 +09:00
e0266b0d81 Reword comment slightly 2022-07-25 04:39:14 +03:00
f5a5887669 Fix players potentially not displaying in spectator after restart 2022-07-25 04:21:53 +03:00
8c2f4b48fc Use debug.assert for better readable. 2022-07-03 19:27:56 +08:00
0a1543c6e8 Use AsNonNull() instead. 2022-07-02 19:48:32 +08:00
c6d0f0f81b pretend that the beatmap property will not be null.
Not really throw exception will be the better way?
2022-07-02 13:20:46 +08:00
22b254e5c5 Handle task exception outside of schedule to avoid unobserved exceptions 2022-06-28 15:09:28 +09:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
13d85b8cc7 Merge branch 'scoreprocessor-cleanup' into multiplayer-leaderboard-user-mods-2 2022-05-31 19:53:37 +09:00
22d998dc2a Use new score processor in MultiplayerGameplayLeaderboard 2022-05-30 19:26:26 +09:00
a052e09ac3 Send ScoreProcessor statistics in SpectatorState 2022-05-30 19:26:26 +09:00
09d560c93e Add test coverage of spectator requests 2022-04-11 19:27:14 +09:00
34457b4742 Expose mocked members as virtual on Multiplayer and SpectatorClient 2022-04-11 19:04:15 +09:00
67082b8c5d Remove verbose logging from SpectatorClient for now 2022-02-25 22:25:36 +09:00
8eef1774d5 Use Logger.Log instead of console 2022-02-25 20:18:22 +09:00
3f2ef030e4 Group SpectatorClient private fields together 2022-02-24 02:31:55 +09:00
694c6ad872 Fix frames potentially getting lost due to non-matching Schedule usage 2022-02-24 02:28:13 +09:00
47b84295a6 Fix bundle send logic not correctly waiting for task completion (due to nested schedule) 2022-02-24 02:23:48 +09:00
cff6f85472 Add note about reconnection being insufficient currently 2022-02-24 02:23:48 +09:00
5ff4d3f8e5 Add support to SpectatorClient to resend failed frame bundles 2022-02-24 02:21:29 +09:00
ffc4c64f7e Unify namings across the board 2022-02-09 12:10:07 +09:00
886d1d2df6 Refactorings 2022-02-08 21:29:43 +09:00
4c76027178 Rename completed state to passed 2022-02-08 20:29:49 +09:00
81a22dbd29 Add back playing users list 2022-02-02 23:19:43 +09:00
fcbba3d948 Rename PlayingUserStates -> WatchingUserStates 2022-02-02 23:11:29 +09:00
6d3bc005ea Merge branch 'master' into spectator-state-rework 2022-02-02 18:57:04 +09:00
f4210f7a30 Rework spectator components to use new user state 2022-02-01 21:53:25 +09:00
41007169f7 Give SpectatorState a user state 2022-02-01 21:51:05 +09:00
502e6af008 Remove PlayingUsers list from SpectatorClient 2022-02-01 14:42:30 +09:00
4727aeda01 Give last bundled replay frame the frame header 2022-01-31 18:53:47 +09:00
3037a3a769 Purge final spectator frames before ending play 2022-01-28 22:26:05 +09:00
7a333ffdcc Add a paired schedule in SpectatorClient.BeginPlaying
Optimally, I would like to remove the `Schedule` in `EndPlaying`, but it
turns out quite a few test are relying on this at very least. Adding a
paired schedule ensure that order of operations is correct, at least.
2021-12-06 17:07:19 +09:00
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
32afd3f426 Replace all basic usages 2021-10-02 02:22:23 +09:00
b807c161b4 Remove now-unused DI params 2021-09-14 17:25:57 +09:00
6cffbee592 Fix random/target mods not working in spectator 2021-09-14 17:22:58 +09:00
bca8a9ea53 Fix HandleFrame crashing when not playing 2021-05-31 10:02:02 +09:00
20f890cfd0 Merge branch 'master' into fix-spectator-playing-state-5 2021-05-21 16:49:22 +09:00
7c59fb37f1 Move check into callback 2021-05-21 16:00:58 +09:00
36aa186c6e Merge branch 'thread-safe-spectator-client' 2021-05-21 16:00:24 +09:00
7f712a4d04 Fix EndPlaying potentially doing cross-thread mutation 2021-05-21 15:57:39 +09:00
2fdf8aa1aa Add update thread assertions 2021-05-21 15:57:31 +09:00
895eb14c5a Forcefully end playing to fix test failures 2021-05-21 14:09:30 +09:00
e3284b976d Merge branch 'thread-safe-spectator-client' into fix-spectator-playing-state-5 2021-05-20 19:46:26 +09:00
06c99e8c7c Fix race due to StopWatchingUser() being called asynchronously 2021-05-20 19:45:31 +09:00
7ee81669f7 Remove bind helpers from SpectatorClient 2021-05-20 19:27:43 +09:00