Improved techniques for managing propagation of data through software modules
used by computer systems are disclosed. The improved techniques allow a plurality
of threads running on different processors to propagate data between software modules
by providing concurrent access to queued data by multiple threads. The techniques
are particularly well suited for use with the STREAMS model that uses software
models arranged in a stack to provide data communications.