You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FileManager.ts:deep_read_directory() doesn't hold the lock throughout its execution. This is probably because some of the functions it calls (e.g.: stat_file(), read_directory() require the lock, which would deadlock). However, the issue with this is that it sometimes try to stat_file() on a file that was in the original read_directory() result but has since been deleted. When listing projects this means that it may miss the .render.cpp~ temp file (no big deal), or possibly (unverified) render.cpp itself when the latter is replaced with a newer version. A re-entrant lock would be needed here (not sure it's possible to implement it in node), or at least a way of telling the functions it calls "trust me, I have the lock".
The text was updated successfully, but these errors were encountered:
FileManager.ts:deep_read_directory()
doesn't hold the lock throughout its execution. This is probably because some of the functions it calls (e.g.:stat_file()
,read_directory()
require the lock, which would deadlock). However, the issue with this is that it sometimes try tostat_file()
on a file that was in the originalread_directory()
result but has since been deleted. When listing projects this means that it may miss the.render.cpp~
temp file (no big deal), or possibly (unverified)render.cpp
itself when the latter is replaced with a newer version. A re-entrant lock would be needed here (not sure it's possible to implement it innode
), or at least a way of telling the functions it calls "trust me, I have the lock".The text was updated successfully, but these errors were encountered: