diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 8c2c4091e8c661faa72ddc50d1987cc53436f44a..5d3e29ca3a87038e77d85c09a243d07df75a3424 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -1512,12 +1512,12 @@ void output_thread(void* arg) sem_trywait(&sbbs->outbuf.sem); /* Check for spurious sem post... */ - if(RingBufFull(&sbbs->outbuf)==0) + if((avail=RingBufFull(&sbbs->outbuf))==0) continue; /* Wait for full buffer or drain timeout */ if(sbbs->outbuf.highwater_mark) { - if(RingBufFull(&sbbs->outbuf)<sbbs->outbuf.highwater_mark) + if(avail<sbbs->outbuf.highwater_mark) sem_trywait_block(&sbbs->outbuf.highwater_sem,startup->outbuf_drain_timeout); else sem_trywait(&sbbs->outbuf.highwater_sem);