90 Commits

Author SHA1 Message Date
Henrik Rydgård
6a1fa728d8 Remove Globals.h 2017-08-31 17:15:22 +02:00
Simonas Kazlauskas
ee00815da3 Fix Windows XP support in LocalFileLoader
Because that junk from 50 years ago still matters to people, apparently.
2017-07-01 13:21:34 +03:00
Unknown W. Brackets
9dced68812 Core: Buildfix. 2017-06-24 14:19:25 -07:00
Unknown W. Brackets
9550771994 Core: Windows buildfix. 2017-06-24 11:58:25 -07:00
Simonas Kazlauskas
0c8faeb3ea Fix windows build 2017-06-24 21:23:52 +03:00
Simonas Kazlauskas
55c193ce78 Remove use of C file api in LocalFileLoader
Instead use native system calls.
2017-06-24 21:07:37 +03:00
Simonas Kazlauskas
597a1af85c Add conservative locking arond Caching/HTTP FLs
Making them hopefully thread-safe.
2017-06-24 21:06:18 +03:00
Simonas Kazlauskas
3f63c29736 Also support atomic windows readAt 2017-06-23 18:40:00 +03:00
Simonas Kazlauskas
3c3596dbf2 Make the Loader API thread-safe
Since the majority of the code is using ReadAt API already, map this to
a `readp` "syscall" which does not mutate any state about the file
descriptor therefore making it fairly safe multi-threading wise.

This allows to get rid of read-time mutexes in RamCachedFileLoader and
therefore fixes #9803
2017-06-23 17:23:43 +03:00
Unknown W. Brackets
a1f59deafe Fix some type narrowing warnings and typos. 2017-03-19 07:44:31 -07:00
Henrik Rydgard
d64f367e1d Assorted warning fixes 2017-03-05 10:52:45 +01:00
Henrik Rydgard
4a2812a30d Fix two mutex issues in CachingFileLoader. See #9370 2017-03-02 10:18:56 +01:00
Henrik Rydgard
d46397627e Buildfixes 2017-02-28 11:40:29 +01:00
Henrik Rydgard
26a2d42731 Big mutex overhaul - remove our custom ones, make them non-recursive where possible 2017-02-28 11:40:29 +01:00
Henrik Rydgard
50be4e72b2 Get rid of our own silly reimplementation of std::thread 2017-02-27 20:51:36 +01:00
Henrik Rydgard
fcbc20f240 Small changes to make Common and Core build under my preliminary UWP setup. 2017-02-24 18:59:41 +01:00
Henrik Rydgard
cbf24a9d78 Get rid of "AutoInit", instead always keep the network initialized.
See #9305
2017-02-14 13:12:02 +01:00
Florent Castelli
70593d1004 android: Change preprocessor define to standard __ANDROID__
ANDROID is only standard to the old Makefile buildsystem, not the platform.
2016-10-12 11:14:09 +02:00
Florent Castelli
4145b60a0e symbian: Remove! 2016-10-11 18:49:08 +02:00
Unknown W. Brackets
65c7d0bd04 Add uncached flag for file loader reads.
This allows us to indicate that a read need not be cached.
2016-07-04 12:07:15 -07:00
Unknown W. Brackets
429346bb94 http: Make sure we don't hang checking existence.
It's not great to delay loading when the server is down - we'll do a
proper check when we display the games.

This also fixes shutdown being slow.
2016-07-04 00:46:42 -07:00
Unknown W. Brackets
41e167f384 http: Oops, fix crash.
Huh, I thought I tested this?
2016-07-03 22:13:52 -07:00
Unknown W. Brackets
eb674b4699 Reduce load delay with many recent http files.
If we have data for them, we can start up fairly quickly.
2016-06-26 20:45:04 -07:00
Unknown W. Brackets
8dd7527dc8 Clamp reads at the beginning too.
Safer, avoids an index overrun in disk cache.
2016-05-26 00:07:46 -07:00
Unknown W. Brackets
1c357f7f7b Fix reads from cache outside the file.
Homebrew seems to all trigger us to read after the end of file, which was
looping infinitely.  Fixes #8773.
2016-05-25 18:42:21 -07:00
Unknown W. Brackets
12f8df395b Return correct bytes near end in RAM caching.
Reading beyond the end of file should not return data.  Also check what
the backend actually returned, in case it wasn't able to return data
either.
2016-05-22 01:35:16 -07:00
Unknown W. Brackets
546c0a5d9b Fix buffer overflow in RAM caching feature.
Would mainly affect files not even block sizes, such as CSO files, but
might affect all files.  Oops.  Fixes #8764.
2016-05-22 01:34:31 -07:00
Unknown W. Brackets
ef1dc583a2 Fix various minor warnings. 2016-03-20 14:17:51 -07:00
Unknown W. Brackets
0517d3721c Correct recovery of locked disk cache files.
We were keeping the index when creating a new file, rather than clearing
it.  Additionally, flush before all reads - in case of overlap.
2016-02-06 19:49:33 -08:00
Unknown W. Brackets
288a5c7aab Lock the diskcache while in use.
This prevents it from being corrupted due to a crash.
2016-01-30 20:50:37 -08:00
Unknown W. Brackets
95abf332d1 Disable ISO RAM cache if out of memory.
Better to fail to preload than to crash.
2015-12-19 15:29:34 -08:00
Unknown W. Brackets
dd5c91108c Use a background thread to load ISO into RAM.
This way we don't get slow startup.  This will also cache the CSO data,
for example, rather than the raw data, using up less RAM.  It might even
be reasonable to enable on 32-bit.
2015-12-19 15:23:25 -08:00
Unknown W. Brackets
0264422b8d Add a bit more error detection to the disk cache. 2015-11-18 21:56:07 -08:00
Unknown W. Brackets
475964133c Make disk cache size a bit more flexible.
This way it will shrink to allow a few games to be cached simultaneously.
2015-11-18 21:56:06 -08:00
Unknown W. Brackets
f2cefebcb6 Garbage collect files when low on free cache space. 2015-11-18 21:56:04 -08:00
Unknown W. Brackets
df6cbafe0f Measure free disk space to size block count. 2015-11-18 21:56:03 -08:00
Unknown W. Brackets
f0ec6fab4d Reorganize disk cache to allow for dynamic size. 2015-11-18 21:56:02 -08:00
Henrik Rydgard
b6e9a47974 Remove separate OpenSL .so, update native accordingly. Fix connection error reporting in HomebrewStore 2015-07-19 17:33:38 +02:00
Unknown W. Brackets
88b23460f1 Add a file loader to perform disk caching.
Had to do some tricks to handle gameinfocache threads properly.
2015-07-02 20:58:58 -07:00
Unknown W. Brackets
da827d9ef0 Move file loader code into directories.
Not making sense to put these all in the same fiel anymore.
2015-07-02 20:58:53 -07:00