extension OperationQueue: Executor
An operation queue manages a number of operation objects, making high level features like cancellation and dependencies simple.
upon closures are enqueued as non-cancellable
operations. This is ideal for regulating the call relative to other
operations in the queue.
public func submit(_ body: @escaping() -> Void)