Patent ID: 7647437

Claim:
A computer-implemented method for moving a queue, the computer comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions capable of executing the method, the method comprising: storing a queue page table pointer to a hardware producer that points to a location of a new queue; determining a current state of the hardware producer; and if the current state is a final state, the hardware producer finishes storing a queue event in an old queue and the current state transitions to a second state having a ready condition, an invalid queue tail pointer, and a valid queue page table pointer, the valid queue page table pointer being the queue page table pointer that points to the location of the new queue; if the current state is a first state having a ready condition, a valid queue tail pointer, and the valid queue page table pointer, then the current state transitions to the second state; if the current state is the second state, then the current state remains the second state; if the current state is a third state having a store queue event condition, the current state transitions to the final state, the hardware producer finishes storing the queue event in the old queue and the current state transitions to the second state; and wherein if the current state is a fourth state having a fetch queue page table entry condition, the hardware producer finishes fetching a queue page table entry and the current state transitions to the second state from which the queue event causes the current state to transition to the fourth state.