github.com/macb/etcd@v0.3.1-0.20140227003422-a60481c6b1a0/store/event_queue.go (about)

     1  package store
     2  
     3  type eventQueue struct {
     4  	Events   []*Event
     5  	Size     int
     6  	Front    int
     7  	Back     int
     8  	Capacity int
     9  }
    10  
    11  func (eq *eventQueue) insert(e *Event) {
    12  	eq.Events[eq.Back] = e
    13  	eq.Back = (eq.Back + 1) % eq.Capacity
    14  
    15  	if eq.Size == eq.Capacity { //dequeue
    16  		eq.Front = (eq.Front + 1) % eq.Capacity
    17  	} else {
    18  		eq.Size++
    19  	}
    20  }