X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FExecutor.h;h=168b6595173516c2e62793affa7125eebbf82d77;hb=fd4ce7d13aa50de6023102b06b2aaa5e9b7d720f;hp=175a7b09e0d6efec9b2ffaf7b5464117ba7094e3;hpb=275ca94d04e44f28cfa411668eb1c1dd8db90b80;p=folly.git diff --git a/folly/Executor.h b/folly/Executor.h index 175a7b09..168b6595 100644 --- a/folly/Executor.h +++ b/folly/Executor.h @@ -17,7 +17,9 @@ #pragma once #include +#include #include +#include namespace folly { @@ -33,6 +35,21 @@ class Executor { /// variants must be threadsafe. virtual void add(Func) = 0; + /// 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 uint8_t getNumPriorities() const { + return 1; + } + + static const int8_t LO_PRI = SCHAR_MIN; + static const int8_t MID_PRI = 0; + static const int8_t HI_PRI = SCHAR_MAX; + /// A convenience function for shared_ptr to legacy functors. /// /// Sometimes you have a functor that is move-only, and therefore can't be