Beispiel #1
0
/***************************************************************************
** Return number of bytes available for reading. */
long RingBuffer_GetReadAvailable( RingBuffer *rbuf )
{
#ifdef MPSAFE
    ReadMemoryBarrier();
#endif
    return ( (rbuf->writeIndex - rbuf->readIndex) & rbuf->bigMask );
}
Beispiel #2
0
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;
}