1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 11:07:25 +08:00
Commit Graph

762 Commits

Author SHA1 Message Date
Dean Herbert
b41fa41c85 Rename APIRequest.Result to Response 2021-10-05 14:28:56 +09:00
Dean Herbert
1d99bc280f Merge branch 'master' into new-interfaces 2021-10-04 20:42:40 +09:00
Dean Herbert
63f0b0c932 Rename out of place interface name 2021-10-04 16:35:55 +09:00
Dean Herbert
857000b756 Mark IPresentImports as covariant 2021-10-04 16:29:46 +09:00
Dean Herbert
3c15ef720f Remove setter from IHasGuidPrimaryKey interface 2021-10-04 16:26:28 +09:00
Dean Herbert
916342c837 Merge branch 'master' into importer-returns-live 2021-10-04 16:24:26 +09:00
Dan Balasescu
aca2f0c12d
Merge pull request #14901 from peppy/model-importer-split
Split importer interface out of `IModelManager`
2021-10-04 16:22:29 +09:00
Dean Herbert
682fe5be78
Merge branch 'master' into realm-context-factory-safer-blocking 2021-10-02 00:30:09 +09:00
Dean Herbert
b1f9bbdc69
Merge branch 'master' into model-importer-split 2021-10-02 00:29:29 +09:00
Dan Balasescu
a620b55d55
Merge pull request #14900 from peppy/model-downloader-split
Split `ArchiveModelManager` into two pieces
2021-10-01 23:16:09 +09:00
Dan Balasescu
d24f89fead
Merge pull request #14906 from peppy/update-realm-context-factory
Refine `RealmContext` implementation
2021-10-01 22:57:03 +09:00
Dean Herbert
a32f5d44e2
Improve clarity of xmldoc
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-10-01 22:23:51 +09:00
Dean Herbert
d309636460 Update all EF based models to implement new read only interfaces 2021-10-01 16:55:50 +09:00
Dean Herbert
74841cf1a9 Merge branch 'update-realm-context-factory' into realm-context-factory-safer-blocking 2021-10-01 03:54:31 +09:00
Dean Herbert
b51fd00ba3 Guard against disposal in all context retrievals 2021-10-01 03:46:53 +09:00
Dean Herbert
8557530cd5 Add back main context locking 2021-10-01 03:45:00 +09:00
Dean Herbert
cfd3bdf888 Ensure realm blocks until all threaded usages are completed 2021-10-01 01:34:35 +09:00
Dean Herbert
9fa901f6aa Refine RealmContext implementation API 2021-09-30 23:56:38 +09:00
Dean Herbert
a2e61883e3 Initial push to use ILive in import process 2021-09-30 22:55:25 +09:00
Dean Herbert
66409147dc Remove duplicate interface specification 2021-09-30 19:25:08 +09:00
Dean Herbert
c05a8fc4a2 Split importer interface out of IModelManager 2021-09-30 18:52:09 +09:00
Dean Herbert
3e3b9bc963 Split out IModelDownloader and also split apart ScoreManager 2021-09-30 18:25:20 +09:00
Dean Herbert
0a00bc7795 Split out IPostNotifications into an interface 2021-09-30 18:21:34 +09:00
Dean Herbert
5618c9933b Expose more pieces of ArchiveModelManager via interfaces 2021-09-30 16:44:39 +09:00
Dean Herbert
d4310f5d9a Move database connection string operations local
In line with framework changes in
https://github.com/ppy/osu-framework/pull/4793.
2021-09-27 17:32:41 +09:00
Dean Herbert
edb1230111 Fix potential nullref throw on failed startup 2021-09-16 22:48:09 +09:00
Dean Herbert
5bb741b4e8 Remove migration of key bindings 2021-09-15 17:04:38 +09:00
Dean Herbert
fed0e15cea Fix typo in ArchiveModelManager 2021-08-23 20:23:46 +09:00
Dean Herbert
4bf22db4ff Attempt to reduce skin lookup overhead where file access is not required 2021-08-17 00:23:30 +09:00
Dean Herbert
d9b5f235d8 Add xmldoc explaining thread safety limitations of IModelManager "events" 2021-08-10 17:36:59 +09:00
Dean Herbert
459f9a0465 Handle nulls and fix missing documentation 2021-07-05 21:35:37 +09:00
Dean Herbert
9c311a6d8a Add ability to lookup multiple users at once to UserLookupCache 2021-07-05 19:56:16 +09:00
Dean Herbert
1e4beddd2d Disable foreign key enforcing at an sqlite level 2021-07-05 15:41:48 +09:00
Dan Balasescu
b82afaddc1
Merge pull request #13767 from peppy/fix-realm-refresh-race
Fix thread safety of realm `Refresh` operation
2021-07-05 13:53:29 +09:00
Dean Herbert
f510ef9153 Move previousContext assign within lock to make things look safer
Not an actual requirement, but no harm.
2021-07-05 10:49:56 +09:00
Bartłomiej Dach
3291f15dcc Mention GetForWrite() as another alternative to Context accesses 2021-07-04 12:08:15 +02:00
Bartłomiej Dach
b89521314f Mention alternatives to Context when not on update thread in xmldoc 2021-07-04 12:07:34 +02:00
Dean Herbert
3ec7dc3bb9 Update tests in line with thread safety check 2021-07-04 17:59:39 +09:00
Dean Herbert
567e9f33a9 Fix thread safety of realm Refresh operation
Due to the lack of locking, there was a chance the the update thread
`context` was retrieved just before the `flushContexts` call, followed
by `.Refresh()` being run while the blocking behaviour was invoked.

This can be seen in test failures such as
https://ci.appveyor.com/project/peppy/osu/builds/39859786/tests.

As an aside, I tried multiple different methods to avoid `lock()` on the
update thread but they felt flaky. The overhead of lock when there's no
contention is reportedly around 30-50ns, so likely not of concern. We
can address it at a later point if it becomes one.
2021-07-04 16:24:43 +09:00
Bartłomiej Dach
8a23dfa6f5 Fix optimised import path buffering events without flush 2021-07-03 17:58:12 +02:00
Dean Herbert
2f1203085b Also add logging of realm block/flush operations 2021-06-29 20:23:25 +09:00
Dan Balasescu
a9084db665
Merge pull request #13673 from peppy/import-early-checksum-abort
Shortcut import process to speed up duplicate imports
2021-06-28 19:55:09 +09:00
Dan Balasescu
92fcf90768
Merge branch 'master' into import-early-checksum-abort 2021-06-28 19:29:08 +09:00
Dean Herbert
d4ea73d727 Simplify disposal exceptions 2021-06-28 16:17:09 +09:00
Dean Herbert
f78cedd0e1 Reorder methods and add xmldoc for BlockAllOperations 2021-06-28 16:16:40 +09:00
Dean Herbert
90f0bc87f5 Add safety against double disposal 2021-06-28 16:12:21 +09:00
Dean Herbert
842f033522 Remove no longer necessary exception 2021-06-28 16:11:55 +09:00
Dean Herbert
0d2bc4fc5f Merge branch 'master' into fix-realm-state-change-crashes 2021-06-28 16:03:58 +09:00
Dean Herbert
c281e43cd8 Remove Dispose() special case and add explicit exception to make debugging issues non-deadlock 2021-06-28 15:04:14 +09:00
Dean Herbert
a3946a1265
Fix typo in newly added xmldoc
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-06-28 14:07:21 +09:00
Dean Herbert
4d6002ab88 Remove redundant string interpolation (and mark all local logging strings as verbatim) 2021-06-28 12:16:15 +09:00
Dean Herbert
4a557e73a7 Add logging to help understand existing case skips better 2021-06-28 10:42:42 +09:00
Dean Herbert
90b87cbb9e Add back unidirectional online id check 2021-06-28 10:11:27 +09:00
Dean Herbert
9a96cd4a1d Revert "Remove comparison of online beatmap IDs during dedupe checks"
This reverts commit 15af28d2a0.
2021-06-28 09:54:18 +09:00
Dean Herbert
e755dcc34d Add log method for new flow 2021-06-27 20:37:12 +09:00
Dean Herbert
f470b7095d Move private method down in class 2021-06-27 20:36:01 +09:00
Dean Herbert
f216404952 Fix missing undelete call on using existing 2021-06-27 20:22:48 +09:00
Dean Herbert
9120321731 Add comments mentioning shortcomings and avoid potential double check 2021-06-27 19:07:35 +09:00
Dean Herbert
44f875b802 Bypass optimised existing check in SkinManager (due to custom hashing function) 2021-06-27 16:35:13 +09:00
Dean Herbert
e493685c14 Add optimised existing check earlier in import process 2021-06-27 16:34:40 +09:00
Dean Herbert
15af28d2a0 Remove comparison of online beatmap IDs during dedupe checks 2021-06-27 14:48:57 +09:00
Dean Herbert
d1f852d102 Make Populate abstract to avoid unnecessary base call async complexity 2021-06-27 14:29:02 +09:00
Dean Herbert
63ab40ec24 Fix potential deadlocking behaviour (and convert ResetEvent to Semaphore) 2021-06-24 14:37:26 +09:00
Dean Herbert
df703b68ec Merge branch 'master' into realm-key-binding-store 2021-05-25 13:41:48 +09:00
Dean Herbert
8f5b28d264 Fix "folder missing" message showing incorrectly for beatmaps folder 2021-05-20 13:56:18 +09:00
Lucas A
8530b31e39 Use bitshifts for enum values instead of literal values. 2021-05-17 21:02:45 +02:00
Lucas A
97952bc3f0 Fix backwards stable install resolution logic. 2021-05-17 18:39:04 +02:00
Lucas A
6110a847aa Simplify import ordering logic by making beatmapImportTask non-nullable. 2021-05-17 16:30:13 +02:00
Lucas A
41fafdf643 Remove now unreachable code paths. 2021-05-17 12:55:59 +02:00
Lucas A
dabe8bd4c7 Fix code inspections and remove now unused code. 2021-05-17 12:55:58 +02:00
Lucas A
a7b740fd1d Reword ImportFromStablePopup and display the popup regardless of whether a stable install is detected. 2021-05-17 12:55:58 +02:00
Lucas A
8ba50b1854 Bring back injected dependency incorrectly marked as unused. 2021-05-17 12:55:58 +02:00
Lucas A
481b0a0125 Add StableDirectoryLocationDialog 2021-05-17 12:55:57 +02:00
Lucas A
325a689d65 Order imports depending on beatmap imports if any is running. 2021-05-17 12:55:57 +02:00
Lucas A
851e33fd15 Hook up StableImportManager. 2021-05-17 12:55:57 +02:00
Lucas A
5d5b1e1f0e Add StableImportManager 2021-05-17 12:55:56 +02:00
Dean Herbert
1742ee89e0 Fix incorrect xmldoc for DeleteFile 2021-05-11 18:39:14 +09:00
Dean Herbert
05e3a73a7d Fix import cancellation not correctly being forwarded to import notification 2021-04-28 16:09:50 +09:00
smoogipoo
6560dc2d1f Fix exported replays being wrapped in zip packages 2021-04-26 20:46:44 +09:00
Dean Herbert
b9ee63ff89 Remove public keywords from interface implementations 2021-04-24 02:13:31 +09:00
Dean Herbert
ecde6137e0 Add missing active usage counter increment 2021-03-31 15:16:01 +09:00
Dean Herbert
37bf79e8a4 Remove unused automapper setup for the time being 2021-03-31 15:10:05 +09:00
Dean Herbert
f8cea5cae3 Merge branch 'master' into realm-migration-operation-blocking 2021-03-26 17:07:31 +09:00
Bartłomiej Dach
a16c0641b2 Revert EF Core to version 2.2
This reverts commit f3faad74d5, reversing
changes made to 712e7bc7bf.

Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
Dean Herbert
03592fa696 Merge branch 'master' into realm-migration-operation-blocking 2021-03-19 21:33:26 +09:00
Dean Herbert
1e519f0d31 Fix seemingly innocent logic change causing breakage in score imports 2021-03-15 14:20:59 +09:00
Dean Herbert
fce21f23d6 Add comments marking workarounds required for EFcore 5 2021-03-15 13:29:26 +09:00
Dean Herbert
2904f479c6 Share file lookup workaround in ArchiveModelManager with workaround extensions class 2021-03-15 13:26:14 +09:00
Dean Herbert
79d3379f55 Reformat application of configuration 2021-03-15 13:20:22 +09:00
Dean Herbert
8a35533889 Add fall-through case to catch a potential requery for unsupported model type 2021-03-15 13:11:58 +09:00
Dean Herbert
2bdffd1004 Move skin requery logic into extension methods 2021-03-15 13:11:58 +09:00
Dean Herbert
900da7b891 Rename and refactor extenion methods to be easier to read 2021-03-15 13:11:58 +09:00
Roman Kapustin
28ef64b62a Explicitly specify SingleQuery behavior 2021-03-14 21:43:27 +03:00
Roman Kapustin
0a1e325fc7 Extract requerying of navigational properties from DbContext 2021-03-14 19:34:53 +03:00
Roman Kapustin
5a4b0174b1 Ignore MultipleCollectionIncludeWarning 2021-03-11 22:40:35 +03:00
Roman Kapustin
47b80d2474 Workaround InvalidOperation exceptions 2021-03-11 20:51:54 +03:00
Roman Kapustin
f1302d1600 Update Microsoft.EntityFrameworkCore 2021-03-11 19:23:56 +03:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
fa95929121 Remove easy to remove finalizers 2021-03-02 16:07:09 +09:00
Dean Herbert
7e6bd0e995 Fix "failed to import" message showing when importing from a stable install with no beatmaps 2021-02-26 17:30:59 +09:00