Summary: We were forward-declaring `Executor` and `IOExecutor` for great compilation speed. However, this leaves users of this header to include at least one of those headers in their cpp file to actually use it, and that's kind of annoying. `Executor` and `IOExecutor` are not templated and are quite small, so it seems like the compilation speed benefit is minimal compared to the convenience factor, so this diff just includes the two headers. (Probably including `Executor.h` is redundant since `IOExecutor.h` probably includes it, but for completeness and explicitness, and in case `IOExecutor` also just forward-declares `Executor` now or in the future.)
Test Plan: stuff still builds
Reviewed By: davejwatson@fb.com
Subscribers: fugalh, exa, folly-diffs@, jsedgwick, yfeldblum, chalfant
FB internal diff:
D1970179
Signature: t1:
1970179:
1428351076:
e9c3700a868688035e7ff50486b8cead751d3c02
#include <memory>
-namespace folly {
-class Executor;
-}
+#include <folly/Executor.h>
+#include <folly/wangle/concurrent/IOExecutor.h>
namespace folly { namespace wangle {
// subsequent calls to getCPUExecutor(). Takes a non-owning (weak) reference.
void setCPUExecutor(std::shared_ptr<Executor> executor);
-// IOExecutors differ from Executors in that they drive and provide access to
-// one or more EventBases.
-class IOExecutor;
-
// Retrieve the global IOExecutor. If there is none, a default
// IOThreadPoolExecutor will be constructed and returned.
+//
+// IOExecutors differ from Executors in that they drive and provide access to
+// one or more EventBases.
std::shared_ptr<IOExecutor> getIOExecutor();
// Set an IOExecutor to be the global IOExecutor which will be returned by