diff --git a/src/hbbft_acs.erl b/src/hbbft_acs.erl index e8d51e3..d6f0f4b 100644 --- a/src/hbbft_acs.erl +++ b/src/hbbft_acs.erl @@ -98,9 +98,13 @@ handle_msg(Data, J, {{rbc, I}, RBCMsg}) -> false -> %% ok, start the BBA for this RBC BBA = get_bba(NewData, I), - {NewBBA, {send, ToSend}} = hbbft_bba:input(BBA#bba_state.bba_data, 1), - {store_bba_input(store_bba_state(NewData, I, NewBBA), I, 1), - {send, hbbft_utils:wrap({bba, I}, ToSend)}} + case hbbft_bba:input(BBA#bba_state.bba_data, 1) of + {DoneBBA, ok} -> + {store_bba_state(NewData, I, DoneBBA), ok}; + {NewBBA, {send, ToSend}} -> + {store_bba_input(store_bba_state(NewData, I, NewBBA), I, 1), + {send, hbbft_utils:wrap({bba, I}, ToSend)}} + end end; {NewRBC, ok} -> {store_rbc_state(Data, I, NewRBC), ok}