//////////////////////////////////////////////////////////////////////// // buffer.cpp : implementation of the CBuffer class // // $Log: buffer.cpp,v $ // Revision 1.1 1997/06/13 18:17:43 nettleto // Initial revision // // #include "buffer.h" void CBuffer::Put (int c) { m.Lock (); while (N >= SIZE) Inc.Wait (&m); Buf [Inp] = c; N++; Inp = (Inp + 1) % SIZE; Outc.Signal (); m.Unlock (); } void CBuffer::Get (int &c) { m.Lock (); while (N <= 0) Outc.Wait (&m); c = Buf [Outp]; N--; Outp = (Outp + 1) % SIZE; Inc.Signal (); m.Unlock (); }