func (alloc *Allocator) doOperation(op operation, ops *[]operation) {
	alloc.actionChan <- func() {
		if alloc.shuttingDown {
			op.Cancel()
			return
		}
		if !op.Try(alloc) {
			*ops = append(*ops, op)
		}
	}
}
// Given an operation, try it, and add it to the pending queue if it didn't succeed
Given an operation, try it, and add it to the pending queue if it didn't succeed
// Given an operation try it and add it to the pending queue if it didn ' t succeed
func (alloc *Allocator) doOperation(op operation, ops *[]operation) {
	alloc.actionChan <- func() {
		if alloc.shuttingDown {
			op.Cancel()
			return
		}
		if !op.Try(alloc) {
			*ops = append(*ops, op)
		}
	}
}
func ( alloc * Allocator ) doOperation ( op operation , ops * [ ] operation ) { alloc . actionChan <- func ( ) { if alloc . shuttingDown { op . Cancel ( ) return } if ! op . Try ( alloc ) { * ops = append ( * ops , op ) } } }
Given an operation, try it, and add it to the pending queue if it didn't succeed
Given an operation try it and add it to the pending queue if it didn ' t succeed