@@ -318,6 +318,7 @@ static int raft_apply(raft_t raft) {
318
318
raft_log_t * l = & raft -> log ;
319
319
while (l -> applied < l -> acked ) {
320
320
raft_entry_t * e = & RAFT_LOG (raft , l -> applied );
321
+ assert (e -> update .len == e -> bytes );
321
322
raft -> config .applier (raft -> config .userdata , e -> update , false);
322
323
raft -> log .applied ++ ;
323
324
applied_now ++ ;
@@ -661,6 +662,7 @@ int raft_emit(raft_t r, raft_update_t update) {
661
662
assert (e -> update .len == 0 );
662
663
assert (e -> update .data == NULL );
663
664
e -> update .len = update .len ;
665
+ e -> bytes = update .len ;
664
666
e -> update .data = malloc (update .len );
665
667
memcpy (e -> update .data , update .data , update .len );
666
668
r -> log .size ++ ;
@@ -671,9 +673,16 @@ int raft_emit(raft_t r, raft_update_t update) {
671
673
}
672
674
673
675
bool raft_applied (raft_t r , int id , int index ) {
674
- raft_peer_t * p = r -> peers + id ;
675
- if (!p -> up ) return false;
676
- return p -> applied >= index ;
676
+ if (r -> me == id )
677
+ {
678
+ return r -> log .applied >= index ;
679
+ }
680
+ else
681
+ {
682
+ raft_peer_t * p = r -> peers + id ;
683
+ if (!p -> up ) return false;
684
+ return p -> applied >= index ;
685
+ }
677
686
}
678
687
679
688
static bool raft_restore (raft_t r , int previndex , raft_entry_t * e ) {
0 commit comments