mirror of https://github.com/OpenMW/openmw.git
master
esm4-texture
i-have-no-land-and-i-must-scream
animationblending
fix-osga-rotate-wildly
BindlessTest
ini_importer_tests
revert-c3c8fa1e
qt6_macos
macos_ci_fix
openmw-48
revert-6246b479
backport_gl_clamp_removal
linux_only_ci
macos_ci
simplify_debugging
cli11_mwiniimporter
cxxopts_mwiniimporter
cxxopts_mwiniimporter_ci_debug
remove_cruft
use_std_locale
use_qt_lockfile
replace_boost
boost_removal
7344-support-launching-the-example-suite
depth-refraction
update_gitlab_rules
shihan.42_7113-move-from-std-atoi-to-std-from_char
7220-lua-add-a-general-purpose-lexical-parser
iwyu_full
7098-improve-post-process-behavior-with-transparent-objects
unbreak_focal
focus_on_focal
coverity_retry
coverity_clang_test
make_linux_ci_do_zoomies
crashfix_debugdraw
remove_forgotten_code
update_coverity_image
post_malone
cleanup
check_span
concepts_and_span
LTO-timing
precompile_headers
wolfgang_html_fun_for_books
just_say_no_to_geode
combined_windows_build
CPP20
fix/shrink_builds
fix_osx_build_maybe
openmw-fix_osx_build_maybe
ccache_for_windows
C++20
ptmikheev-master-patch-38354
ptmikheev-master-patch-42253
psi29a-master-patch-54550
librecast_all_the_things
cpp17_on_mac
make_full_use_of_c++17_on_mac
lua_on_mac
coverity_use_clang
gh_sync
switch-to-ppa
openmw-47
fix-static-urls
android-ndk22
macos-builds-only-for-openmw
openmw-0.47.0
conditional_push_builds
macos-build
get-testy
additional-cxxflags
pipeline-only-on-pull_requests
enable-github-pipeline
bosvensson1/robert
cherry-pick-2c0f29ea
cherry-pick-2bee171c
dont-compose-content
cherry-pick-5688b7b4
cherry-pick-f6619658
libera
travis_clang
deadcode
improve-bullet-precision-check
cherry-pick-74612b12
cherry-pick-f1d19035
cherry-pick-d595c7ad
symlink-ci
brute_force_lights
psi29a-patch-1
cherry-pick-c431f31c
travis-testing
recast_test_fix_c17
bzzt_8_shadows_in_refraction
cherry-pick-ff2d7695
cleanup_2
macos-runner-beta-fencing
lz4_prep
async-msvc2017-fix
see-cache
openmw-46
openmw-45
openmw-44
openmw-36
openmw-0.44.0
openmw-0.43.0
openmw-0.41.0
openmw-0.40.0
openmw-0.39.0
openmw-0.38.0
openmw-0.37.0
openmw-0.36.1
openmw-0.36.0
openmw-0.35.1
openmw-0.35.0
openmw-0.34.0
openmw-0.33.1
openmw-0.33.0
openmw-0.32.0
openmw-0.31.0
openmw-0.30.0
debian/0.29.0-1
upstream/0.29.0
openmw-0.29.0
upstream/0.28.0
openmw-0.28.0
openmw-0.27.0
upstream/0.27.0
upstream/0.26.0
openmw-0.26.0
openmw-0.25.0
openmw-0.24.0
openmw-0.23.0
openmw-0.22.0
openmw-0.21.0
openmw-0.20.0
openmw-0.19.0
openmw-0.18.0
openmw-0.17.0
openmw-0.16.0
openmw-0.15.0
openmw-0.14.0
openmw-0.13.0
openmw-0.12.0
openmw-0.11.1
openmw-0.11.0
openmw-0.10.0
openmw-0.9.0
0.47.0-RC3
old_d_version
openmw-0.07_Bond_just_Bond
openmw-0.08
openmw-0.42.0
openmw-0.45.0
openmw-0.46.0
openmw-0.47.0
openmw-0.48.0
openmw-48-rc10
openmw-48-rc11
openmw-48-rc12
openmw-48-rc12.1
openmw-48-rc6
openmw-48-rc7
openmw-48-rc8
openmw-48-rc9
stable
upstream/0.27.1
${ noResults }
3 Commits (96845081c03ed0bfd7effa86273ddb2ce74ece5b)
Author | SHA1 | Message | Date |
---|---|---|---|
Evil Eye | 77d554594f | Add ReadersCache::clear | 8 months ago |
clang-format-bot |
ddb0522bbf
|
Apply clang-format to code base | 2 years ago |
elsid |
3affe9913f
|
Limit the number of simultaneously open not actively used content files
Use LRU cache for ESMReaders. When cache capacity is reached close least recently used ESMReader. Remember the file name if a reader was open. Once the reader requested again open the file if there is stored name for it. Put released ESMReader to the back of the free items list. Close ESMReader's from the front of the free items list. Cached item can be used only by one client at the same time. If the same item is requested twice exception is thrown. This should never happen in practice. If this happens need to fix the client logic. It's allowed to go over the capacity limit when requesting different readers. Ideally this should never happen but there will be system error anyway signalizing about too many open files. Need to fix client logic in this case. All places that were using a vector of ESMReaders now using the cache. Cache is local for each use case and there is no need for a thread safety. |
3 years ago |