commit | f41b98e92e5a9ad3674f39c5bd05294454069476 | [log] [tgz] |
---|---|---|
author | Sam McNally <sammc@chromium.org> | Thu Mar 21 06:15:23 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Mar 21 06:15:23 2019 |
tree | 4eb63a205d46a6d308f102b8f1d4cd7bccb763bc | |
parent | e5ba47663b4cf94764700a900e6f40af6a06a9cf [diff] |
Create a task runner per ChromeOS native filesystem operation. FileSystemContext defaults to using a single global task runner for blocking I/O operations. If this gets stuck or overloaded, this can prevent other blocking I/O using the HTML filesystem API from making progress. This can lead to the files app failing to show any files or mounts. In particular, there are two cases known to cause this: 1. A large copy (e.g. Linux kernel source) is made from Downloads to Drive. Previously, this triggered many read directory requests to Drive, clogging the single shared task runner as the repeated scans with stat calls for each file/directory are not particularly fast. 2. A filesystem hangs on an I/O operation (simulated via a DriveFS modified to never respond to FUSE read requests). Switch the ChromeOS FileSystemBackend to create a task runner per operation for native filesystems that require blocking I/O. Bug: 904658, 943886 Change-Id: I531fe038fd7ccc2b213835bea29b685081f3b27b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1531925 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by: Noel Gordon <noel@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Commit-Position: refs/heads/master@{#642843}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .