/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#pragma once
-#include <atomic>
#include <climits>
-#include <functional>
-#include <stdexcept>
+
+#include <folly/Function.h>
namespace folly {
-typedef std::function<void()> Func;
+using Func = Function<void()>;
/// An Executor accepts units of work with add(), which should be
/// threadsafe.
/// Enqueue a function with a given priority, where 0 is the medium priority
/// This is up to the implementation to enforce
- virtual void addWithPriority(Func, int8_t /*priority*/) {
- throw std::runtime_error(
- "addWithPriority() is not implemented for this Executor");
- }
+ virtual void addWithPriority(Func, int8_t priority);
virtual uint8_t getNumPriorities() const {
return 1;