A reader and writer access a ring buffer without using a locking
mechanism, thereby avoiding any delays attendant to using a locking
mechanism when performing read operations to supply the reader with data
from the ring buffer. Other measures are used to reduce delayed
performance of read operations. If data requested by a reader is not
available in the ring buffer, rather than waiting until the data becomes
available, substitute data not from the ring buffer is provided instead.
The ring buffer's size may be dynamically increased or decreased to
improve performance of read and write operations and/or to conserve
computer resources.