diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index ac0bcfb2b41c8b6074792a1a43c589642e1a794d..8c2c4091e8c661faa72ddc50d1987cc53436f44a 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -1504,7 +1504,7 @@ void output_thread(void* arg) */ if(bufbot == buftop) { /* Wait for something to output in the RingBuffer */ - if(!RingBufFull(&sbbs->outbuf)) { + if(RingBufFull(&sbbs->outbuf)==0) { /* empty */ if(sem_trywait_block(&sbbs->outbuf.sem,1000)) continue; } @@ -1512,16 +1512,16 @@ void output_thread(void* arg) sem_trywait(&sbbs->outbuf.sem); /* Check for spurious sem post... */ - if(!RingBufFull(&sbbs->outbuf)) + if(RingBufFull(&sbbs->outbuf)==0) continue; /* Wait for full buffer or drain timeout */ - if(RingBufFull(&sbbs->outbuf)<sbbs->outbuf.highwater_mark) { - if(sbbs->outbuf.highwater_mark) + if(sbbs->outbuf.highwater_mark) { + if(RingBufFull(&sbbs->outbuf)<sbbs->outbuf.highwater_mark) sem_trywait_block(&sbbs->outbuf.highwater_sem,startup->outbuf_drain_timeout); + else + sem_trywait(&sbbs->outbuf.highwater_sem); } - else - sem_trywait(&sbbs->outbuf.highwater_sem); /* * At this point, there's something to send and,