A buffer ring is utilized to track and control the distribution of
information. Index variables that refer to storage locations or slots in
the buffer ring are utilized to track the receipt and distribution of
information. The variables initially point to the same slot. As
information is received a status indicator associated the slot is checked
and if the location is free either the product information elements or
addresses of where the product information are entered in the slots. They
are tracked by a producer variable that is incremented to indicate the
next available slot. Slots between the consumer variable and the producer
variable define a segment of the buffer associated with a particular
thread. The information is forwarded to a thread based upon the
variables. As product information elements are forwarded control of the
buffer ring is obtained and the variables determine a buffer segment that
is forwarded.