|
|
|
@ -78,7 +78,6 @@ void rd_RingbufferInit(rd_ringbuf_t *rb, char *pool, int size) |
|
|
|
int rd_RingbufferSpaceLen(rd_ringbuf_t *rb) |
|
|
|
{ |
|
|
|
if (!rb) return -1; |
|
|
|
int iRet = 0; |
|
|
|
|
|
|
|
unsigned short wi = ATOMIC_LOAD(&rb->m_sWriteIndex, unsigned short, ATOMIC_ORDER_ACQUIRE); |
|
|
|
unsigned short ri = ATOMIC_LOAD(&rb->m_sReadIndex, unsigned short, ATOMIC_ORDER_RELAXED); |
|
|
|
@ -86,19 +85,9 @@ int rd_RingbufferSpaceLen(rd_ringbuf_t *rb) |
|
|
|
unsigned char rb_m = ATOMIC_LOAD(&rb->m_bReadMirror, unsigned char, ATOMIC_ORDER_RELAXED); |
|
|
|
|
|
|
|
if (wb == rb_m) { |
|
|
|
iRet = rb->m_iBufsize - (wi - ri); |
|
|
|
return rb->m_iBufsize - (wi - ri); |
|
|
|
} else { |
|
|
|
iRet = ri - wi; |
|
|
|
} |
|
|
|
|
|
|
|
if (iRet >= 0) |
|
|
|
{ |
|
|
|
return iRet; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
log_e("wb = %d, rb_m = %d, wi = %d, ri = %d", wb, rb_m, wi, ri); |
|
|
|
return 0; |
|
|
|
return ri - wi; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|