Repository navigation
Conversation
Member
|
Thanks for the contribution, please actually check your changes and not copy and paste what the AI thinks the test is |
Author
|
Fair point, sorry about that. I've now run the app itself against a slow SMB share, |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolved / Related Issues
Folder enumeration queues
desktop.iniloading on the UI dispatcher, whereFile.ExistsandFile.ReadLinescan block while an SMB share stops responding. Read the file on a worker instead, then apply the metadata and background image on the dispatcher. A cancelled navigation or changed working directory discards the result so it cannot overwrite the new folder's metadata.The existing task still completes before adaptive layout uses
DesktopIni. Windows networking timeouts are still controlled by the OS; this change keeps that particular read off the UI thread.Steps used to test these changes
Tested the Debug/x64 build of this branch against
main(9bc7472) on Windows 11 (26200), using a real SMB share that I made slow on purpose.\127.0.0.1\share(net use /TCPPORT:4450). Oplocks and leases were disabled on the server so the SMB client could not answer the read from its cache. The folder has 25 files and adesktop.iniwith a[FilesApp]Files_BackgroundImageentry.tc netem delay 1000ms), then opened the folder withfiles-dev.exe "\127.0.0.1\share\pasta-lenta".WM_NULLto the main window every 25 ms (SendMessageTimeout, 100 ms timeout) and logged every stretch where the UI thread did not answer. Five runs per build, fresh process each time.mainThe 11–12 s hang that follows enumeration on
mainis gone with this change. Two hangs remain: one of about 4.2 s that is identical in both builds, and a shorter one (1–3.6 s) after it. I have not tracked down where those come from, so this PR does not make a slow share fully smooth.desktop.iniis still applied, both on the slow share and on a local folder.Not tested: a share that stops answering completely (only a slow one).