Commit Graph

682 Commits

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