summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/language_server/gdscript_language_server.cpp
diff options
context:
space:
mode:
authorPedro J. Estébanez <pedrojrulez@gmail.com>2024-07-10 12:53:14 +0200
committerPedro J. Estébanez <pedrojrulez@gmail.com>2024-08-21 12:19:43 +0200
commit28619e26cf35227c3ddab35878e1045f82895657 (patch)
treed32edb7c7690310e769bae9cf5c21026ad1891e0 /modules/gdscript/language_server/gdscript_language_server.cpp
parentbd0959ebdd8819321f9b24880d05b43eb2aaa4cc (diff)
downloadredot-engine-28619e26cf35227c3ddab35878e1045f82895657.tar.gz
ResourceLoader: Enhance deadlock prevention
Benefits: - Simpler code. The main load function is renamed so it's apparent that it's not just a thread entry point anymore. - Cache and thread modes of the original task are honored. A beautiful consequence of this is that, unlike formerly, re-issued loads can use the resource cache, which makes this mechanism much more performant. - The newly added getter for caller task id in WorkerThreadPool allows to remove the custom tracking of that in ResourceLoader. - The check to replace a cached resource and the replacement itself happen atomically. That fixes deadlock prevention leading to multiple resource instances of the same one on disk. As a side effect, it also makes the regular check for replace load mode more robust.
Diffstat (limited to 'modules/gdscript/language_server/gdscript_language_server.cpp')
0 files changed, 0 insertions, 0 deletions