/*************************************************************************** ** Return number of bytes available for reading. */ long RingBuffer_GetReadAvailable( RingBuffer *rbuf ) { #ifdef MPSAFE ReadMemoryBarrier(); #endif return ( (rbuf->writeIndex - rbuf->readIndex) & rbuf->bigMask ); }
LogStream& StdLogStream() { static LogStream *s; ReadMemoryBarrier(); if(!s) { static StaticCriticalSection lock; lock.Enter(); if(!s) { static byte lb[sizeof(LogStream)]; LogStream *strm = new(lb) LogStream; if(!*__logfilename) sOpenVppLog(strm); WriteMemoryBarrier(); s = strm; } lock.Leave(); } return *s; }