This repository has been archived by the owner on Feb 12, 2024. It is now read-only.
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.
This is a fix for
preStart
being called twice but also a partial refactor of the boot sequence.The problem is that
preStart
always needs to be called betweeninit
andstart
and was actually being called inboot.js
(via theIPFS
constructor if repo exists or is newly initialized) as well as instart.js
.The following permutations of constructing, initializing and starting show how
preStart
was being called twice:preStart
is called ✅preStart
is called once fromipfs.start()
✅preStart
is called ✅preStart
is called once fromboot.js
(via the constructor) and again inipfs.start()
❌preStart
is called ✅preStart
is called once fromboot.js
(via the constructor) and again viaboot.js
since it callsipfs.start()
❌So having
preStart
called inboot.js
andipfs.start
ensures it is always called, but in most cases it ends up being called twice.This PR moves the call to
preStart
intoinit
and ensuresinit
is always called even if the repo already exists.towards #1061
fixes #1162