Open Bug 968829 Opened 8 years ago Updated 3 years ago

main thread I/O in XPIProvider

Categories

(Toolkit :: Add-ons Manager, defect, P3)

defect

Tracking

()

People

(Reporter: Yoric, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: main-thread-io, perf)

Several cases of main thread I/O:
- three instances in _installDirectory;
- rollback;
- two instances in getTemporaryFile;
- extractFiles;
- startup;
- several in installDistributionAddons;
- ...
Some of those are during startup and must complete before Firefox can continue to startup. Is there a reason to switch those to off-main-thread I/O?
(In reply to Dave Townsend (:Mossop) from comment #1)
> Some of those are during startup and must complete before Firefox can
> continue to startup. Is there a reason to switch those to off-main-thread
> I/O?

Reading this component is a little complicated, as there is lots of sync IO and lots of OMT IO. It would be great if we could label/document the pieces of IO that must by definition be sync, and those that we should be able to move OMT.
As a side-note: looking at the code, I have the strong impression that the interleaving of sync IO and OMT IO doesn't always make sense. For instance, creating the "staged" directory is done with OS.File but removing it afterwards is done with nsIFile. I believe that this part of the code would deserve some quality time with a dev.
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.