diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/shm_ap_rbuff.c | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c index 6c977cbb..6c04ccc5 100644 --- a/src/lib/shm_ap_rbuff.c +++ b/src/lib/shm_ap_rbuff.c @@ -245,18 +245,17 @@ struct rb_entry * shm_ap_rbuff_read(struct shm_ap_rbuff * rb)          if (rb == NULL)                  return NULL; -        e = malloc(sizeof(*e)); -        if (e == NULL) -                return NULL; -          pthread_mutex_lock(rb->shm_mutex);          if (shm_rbuff_used(rb) == 0) {                  pthread_mutex_unlock(rb->shm_mutex); -                free(e);                  return NULL;          } +        e = malloc(sizeof(*e)); +        if (e == NULL) +                return NULL; +          *e = *(rb->shm_base + *rb->ptr_tail);          *rb->ptr_tail = (*rb->ptr_tail + 1) & (SHM_RBUFF_SIZE -1); | 
