Coordinator.processParent gets called when a parent proposed by a validator becomes solid. Here, we check its validity before issuing a Proof. This PR clears all registered callbacks as soon as enough parents have been proven and the parents have been fixed in the milestone essence.
Previously, the clear happened much later after the milestone was already signed. This lead to race conditions where Coordinator.processParent was called after the parents had already been fixed.
Coordinator.processParent
gets called when a parent proposed by a validator becomes solid. Here, we check its validity before issuing aProof
. This PR clears all registered callbacks as soon as enough parents have been proven and the parents have been fixed in the milestone essence. Previously, the clear happened much later after the milestone was already signed. This lead to race conditions whereCoordinator.processParent
was called after the parents had already been fixed.