Unformatted text preview: ignore the null-pointer exception for the Dequeue() operation for now): // Holding cell for an entry class QueueEntry { QueueEntry next = null; Object stored; QueueEntry(Object newobject) { stored = newobject; } } // The actual Queue (not yet lock free!) class Queue { QueueEntry prevHead = new QueueEntry(null); QueueEntry tail = prevHead; void Enqueue(Object newobject) { QueueEntry newEntry = new QueueEntry(newobject); QueneEntry oldtail = tail; tail = newEntry; oldtail.next = newEntry; } Object Dequeue() { QueueEntry oldprevHead = prevHead; QueueEntry nextEntry = oldprevHead.next; prevHead = nextEntry; return nextEntry.stored; } } Problem 3d[3pts]: For this non-multithreaded code, draw the state of a queue with 2 queued items on it:...
View
Full Document
- Spring '02
- Kubiatowicz
- Operating Systems, Subroutine, 3pts, lock-free FIFO queue
-
Click to edit the document details