diff --git a/src/sbbs3/ringbuf.c b/src/sbbs3/ringbuf.c index 220273d717814c1fca8ed1945fa9566c4d92f6b7..247ad9b36bd0b26ca78342ec45d4341b6f182201 100644 --- a/src/sbbs3/ringbuf.c +++ b/src/sbbs3/ringbuf.c @@ -126,14 +126,8 @@ void RINGBUFCALL RingBufDispose( RingBuf* rb) memset(rb,0,sizeof(RingBuf)); } -/* Non-mutex-protected (standard pthread mutexes are non-recursive) */ -static DWORD ringbuf_full(RingBuf* rb) -{ - if(rb->pHead >= rb->pTail) - return(rb->pHead - rb->pTail); - - return(rb->size - (rb->pTail - (rb->pHead + 1))); -} +#define RINGBUF_FILL_LEVEL(rb) (rb->pHead >= rb->pTail ? (rb->pHead - rb->pTail) \ + : (rb->size - (rb->pTail - (rb->pHead + 1)))) DWORD RINGBUFCALL RingBufFull( RingBuf* rb ) { @@ -143,7 +137,7 @@ DWORD RINGBUFCALL RingBufFull( RingBuf* rb ) pthread_mutex_lock(&rb->mutex); #endif - retval = ringbuf_full(rb); + retval = RINGBUF_FILL_LEVEL(rb); #ifdef RINGBUF_EVENT if(rb->empty_event!=NULL) { @@ -213,7 +207,7 @@ DWORD RINGBUFCALL RingBufWrite( RingBuf* rb, BYTE* src, DWORD cnt ) #ifdef RINGBUF_SEM sem_post(&rb->sem); - if(rb->highwater_mark!=0 && ringbuf_full(rb)>=rb->highwater_mark) + if(rb->highwater_mark!=0 && RINGBUF_FILL_LEVEL(rb)>=rb->highwater_mark) sem_post(&rb->highwater_sem); #endif #ifdef RINGBUF_EVENT