diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/dev.c | 2 | ||||
| -rw-r--r-- | src/lib/shm_ap_rbuff.c | 4 | 
2 files changed, 4 insertions, 2 deletions
| diff --git a/src/lib/dev.c b/src/lib/dev.c index 8e1ee342..8556d6e2 100644 --- a/src/lib/dev.c +++ b/src/lib/dev.c @@ -255,7 +255,7 @@ void ap_fini()          pthread_rwlock_wrlock(&ai.data_lock);          /* remove all remaining sdus */ -        while ((i = shm_ap_rbuff_peek_idx(ai.rb)) >= 0) +        while ((i = shm_ap_rbuff_pop_idx(ai.rb)) >= 0)                  shm_rdrbuff_remove(ai.rdrb, i);          if (ai.fds != NULL) diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c index 184a1bf2..acbc81a6 100644 --- a/src/lib/shm_ap_rbuff.c +++ b/src/lib/shm_ap_rbuff.c @@ -294,7 +294,7 @@ int shm_ap_rbuff_write(struct shm_ap_rbuff * rb, struct rb_entry * e)          return 0;  } -int shm_ap_rbuff_peek_idx(struct shm_ap_rbuff * rb) +int shm_ap_rbuff_pop_idx(struct shm_ap_rbuff * rb)  {          int ret = 0; @@ -315,6 +315,8 @@ int shm_ap_rbuff_peek_idx(struct shm_ap_rbuff * rb)          ret = tail_el_ptr(rb)->index; +        *rb->ptr_head = (*rb->ptr_head + 1) & (SHM_BUFFER_SIZE -1); +          pthread_mutex_unlock(rb->lock);          return ret; | 
