Commit Graph

687 Commits

Author SHA1 Message Date
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