Patent ID: 8413161

Claim:
A method for selecting a work queue associated with a processor within a multiple processor architecture to assign a new task, the method comprising: maintaining, within a shared random access memory, a plurality of queue availability flag pairs, wherein each queue availability flag pair within the plurality of queue availability flag pairs is associated with a respective associated work queue within a plurality of work queues, each queue availability flag pair comprising a respective local queue availability flag and a respective remote queue availability flag, the respective local queue availability flag and the respective remote queue availability flag of a respective queue availability flag pair each indicating an availability to accept a new task of the respective associated work queue that is associated with the respective queue availability flag pair; determining, on a local processor based on at least one flag within the plurality of queue availability flag pairs, an availability of a selected work queue associated with a selected processor to accept a new task, wherein the local processor and the selected processor are within a multiple processor architecture and access the shared random access memory; assigning, in response to determining the availability, the new task to the selected work queue; determining that the selected processor is the local processor; updating, in response to determining that the selected processor is not the local processor, a selected remote queue availability flag, based upon a size of the work queue associated with the selected processor, wherein the selected remote queue availability flag is a remote queue availability flag of a queue availability flag pair associated with the selected work queue; and determining, in response to determining that selected processor is the local processor and in response to assigning the new task, to not change any flag within the plurality of queue availability flag pairs, wherein the determining not to change any flag is independent of a size of the selected work queue.