Commit graph

17 commits

Author SHA1 Message Date
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
Henrik Rydgard
26a2d42731 Big mutex overhaul - remove our custom ones, make them non-recursive where possible 2017-02-28 11:40:29 +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
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
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
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
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