Shared Objects

For efficiency reasons, certain AL objects are shared across ALC contexts. At this time, AL buffers are the only shared objects.

NoteRFC/ Sharing Sources?
 

Mike Kelly from Dynamix describes an application scenario with multiple camera views of the same scene (implemented using several viewports on a single, "split screen", context) in which he needs multiple listeners (one per view) to preceive the same sources, with the rendering results of each listener to mixed for a single output device. As an alternative to permitting multiple listeners within a context, it might be preferable to introduce a mechanism to explicitely share certain AL objects among contexts, at a later time. It is not desirable to share Sources by default, especially as the more common multi-listener application is expected to maintain listeners with disjunct sets of sources.

Shared Buffers

Buffers are shared among contexts. The processing state of a buffer is determined by the dependencies imposed by all contexts, not just the current context. This includes suspended contexts as well as contexts that are processing.