A method and apparatus is provided for providing and integrating
high-performance message queues. "Contexts" are provided that allow
independent worlds to be created and execute in parallel. A context is
created with one or more threads. Each object is created with context
affinity, allowing any thread inside the context to modify the object or
process pending messages. Threads in a different context are unable to
modify the object or process pending messages for that context. To help
achieve scalability and context affinity, both global and thread-local
data is often moved into the context. Remaining global data has
independent locks, providing synchronized access for multiple contexts.
Each context has multiple message queues to create a priority queue.
There are default queues for sent messages and posted messages,
carry-overs from legacy window managers, with the ability to add new
queues on demand. A queue bridge is also provided for actually processing
the messages.
Um método e um instrumento são fornecidos fornecendo e integrando filas de mensagem high-performance. os "contextos" são contanto que permita que os mundos independentes sejam criados e executam na paralela. Um contexto é criado com o um ou mais enfía. Cada objeto é criado com a afinidade do contexto, permitindo que toda a linha dentro do contexto modifique o objeto ou processe-o durante mensagens. As linhas em um contexto diferente são incapazes de modificar o objeto ou de processar mensagens pendentes para esse contexto. Ajudar conseguir dados globais e enfí-locais da afinidade do scalability e do contexto, é movida frequentemente no contexto. Os dados globais restantes têm os fechamentos independentes, fornecendo o acesso sincronizado para contextos múltiplos. Cada contexto tem as filas de mensagem múltipla para criar uma fila da prioridade. Há filas do defeito para as mensagens emitidas e as mensagens afixadas, extravasamentos dos gerentes de janela do legacy, com a abilidade de adicionar filas novas na demanda. Uma ponte da fila é fornecida também realmente processando as mensagens.