linkedlist.go
func (list *LinkedList) RemoveFront() (interface{}, bool) {
	list.key.Lock()
	defer list.key.Unlock()

	if list.first == nil {
		return nil, false
	}

	retval := list.first.payload

	list.first = list.first.next
	list.length--

	if 0 == list.length {
		list.last = nil
	}

	return retval, true
}
func (list *LinkedList) RemoveFront() (interface{}, bool) {
	list.key.Lock()
	defer list.key.Unlock()

	if list.first == nil {
		return nil, false
	}

	retval := list.first.payload

	list.first = list.first.next
	list.length--

	if 0 == list.length {
		list.last = nil
	}

	return retval, true
}
// RemoveFront returns the entry logically stored at the front of this list and removes it.