private void Handle(SystemMessage.EpochWritten msg) { lock (_lock){ _epochIds.Add(msg.Epoch.EpochId); } _expectedNumberOfEvents?.Signal(); }
public void Handle(SystemMessage.EpochWritten received) { if (_managerState != ManagerState.WritingEpoch) { Ignore(received, "Not writing epoch."); } else if (received.Epoch.EpochNumber != _currentEpochNumber) { Ignore( received, "Current epoch number is {currentEpochNumber} but received {receivedEpochNumber}.", _currentEpochNumber, received.Epoch.EpochNumber); } else { Respond(received, new SystemMessage.EnablePreLeaderReplication()); _managerState = ManagerState.WaitingForConditions; // want to replicate past the start of the epoch we just wrote. _replicationCheckpointTarget = received.Epoch.EpochPosition + 1; // and index past it too, to the $epoch-information event that immediately follows it _indexCheckpointTarget = received.Epoch.EpochPosition + 1; ConsiderBecomingLeader(received, log: true); _publisher.Publish(_scheduleCheckInaugurationConditions); } }
public void Handle(SystemMessage.EpochWritten message) { if (_ready) { return; } if (_currentState == VNodeState.Master) { _epochId = message.Epoch.EpochId; _ready = true; } StartWhenConditionsAreMet(); }
private void Handle(SystemMessage.EpochWritten msg) { _epochIds.Add(msg.Epoch.EpochId); }
private void Handle(SystemMessage.EpochWritten msg) { _epochIds.Add(msg.Epoch.EpochId); _waitForStart.Set(); }