code: func (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) error {
  	id, err := f.KeyOf(obj)
  	if err != nil {
  		return KeyError{obj, err}
  	}
  
  	// If object is supposed to be deleted (last event is Deleted),
  	// then we should ignore Sync events, because it would result in
  	// recreation of this object.
  	if actionType == Sync && f.willObjectBeDeletedLocked(id) {
  		return nil
  	}
  
  	newDeltas := append(f.items[id], Delta{actionType, obj})
  	newDeltas = dedupDeltas(newDeltas)
  
  	if len(newDeltas) > 0 {
  		if _, exists := f.items[id]; !exists {
  			f.queue = append(f.queue, id)
  		}
  		f.items[id] = newDeltas
  		f.cond.Broadcast()
  	} else {
  		// We need to remove this from our map (extra items in the queue are
  		// ignored if they are not in the map).
  		delete(f.items, id)
  	}
  	return nil
  }
docs: // queueActionLocked appends to the delta list for the object.
  // Caller must lock first.