#include <folly/io/async/MuxIOThreadPoolExecutor.h>
#include <stdexcept>
#include <fmt/format.h>
#include <folly/container/Enumerate.h>
#include <folly/experimental/io/EpollBackend.h>
#include <folly/lang/Align.h>
#include <folly/synchronization/Latch.h>
namespace folly {
namespace {
ThrottledLifoSem::Options throttledLifoSemOptions(
std::chrono::nanoseconds wakeUpInterval) { … }
}
struct MuxIOThreadPoolExecutor::EvbState { … };
MuxIOThreadPoolExecutor::MuxIOThreadPoolExecutor(
size_t numThreads,
Options options,
std::shared_ptr<ThreadFactory> threadFactory,
EventBaseManager* ebm)
: … { … }
MuxIOThreadPoolExecutor::~MuxIOThreadPoolExecutor() { … }
void MuxIOThreadPoolExecutor::add(Func func) { … }
void MuxIOThreadPoolExecutor::add(
Func func, std::chrono::milliseconds expiration, Func expireCallback) { … }
void MuxIOThreadPoolExecutor::validateNumThreads(size_t numThreads) { … }
std::shared_ptr<ThreadPoolExecutor::Thread>
MuxIOThreadPoolExecutor::makeThread() { … }
void MuxIOThreadPoolExecutor::threadRun(ThreadPtr thread) { … }
MuxIOThreadPoolExecutor::EvbState& MuxIOThreadPoolExecutor::pickEvbState() { … }
size_t MuxIOThreadPoolExecutor::getPendingTaskCountImpl() const { … }
void MuxIOThreadPoolExecutor::addObserver(std::shared_ptr<Observer> o) { … }
void MuxIOThreadPoolExecutor::maybeUnregisterEventBases(Observer* o) { … }
void MuxIOThreadPoolExecutor::removeObserver(std::shared_ptr<Observer> o) { … }
std::vector<folly::Executor::KeepAlive<folly::EventBase>>
MuxIOThreadPoolExecutor::getAllEventBases() { … }
folly::EventBaseManager* MuxIOThreadPoolExecutor::getEventBaseManager() { … }
EventBase* MuxIOThreadPoolExecutor::getEventBase() { … }
void MuxIOThreadPoolExecutor::stopThreads(size_t n) { … }
void MuxIOThreadPoolExecutor::stop() { … }
void MuxIOThreadPoolExecutor::join() { … }
}