proxygen
PushmiBenchmarks.cpp File Reference

Go to the source code of this file.

Classes

struct  countdown< R >
 
struct  inline_time_executor
 
struct  inline_executor
 
struct  inline_executor_flow_single< CancellationFactory >
 
struct  shared_cancellation_factory
 
struct  entangled_cancellation_factory
 
struct  inline_executor_flow_single_ignore
 
struct  inline_executor_flow_many
 
struct  inline_executor_flow_many_ignore
 
struct  inline_executor_many
 

Macros

#define concept   Concept
 

Typedefs

using countdownsingle = countdown< decltype(mi::make_receiver)>
 
using countdownflowsingle = countdown< decltype(mi::make_flow_receiver)>
 
using countdownmany = countdown< decltype(mi::make_receiver)>
 
using countdownflowmany = countdown< decltype(mi::make_flow_receiver)>
 
using inline_executor_flow_single_shared = inline_executor_flow_single< shared_cancellation_factory >
 
using inline_executor_flow_single_entangled = inline_executor_flow_single< entangled_cancellation_factory >
 
using IE = decltype(ie)
 
using TR = decltype(tr)
 
using PE = decltype(pe)
 
using NT = decltype(nt)
 

Functions

 NONIUS_BENCHMARK ("ready 1'000 single get (submit)", [](nonius::chronometer meter){int counter{0};meter.measure([&]{counter=1'000;while(--counter >=0){auto fortyTwo=op::just(42)|op::get< int >;}return counter;});}) NONIUS_BENCHMARK("ready 1'000 single get (blocking_submit)"
 
meter measure ([&]{counter=1'000;while(--counter >=0){auto fortyTwo=mi::make_single_sender([](auto out){mi::set_value(out, 42);mi::set_done(out);})|op::get< int >;}return counter;})
 
 NONIUS_BENCHMARK ("inline 1'000 single", [](nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor{};using IE=decltype(ie);countdownsingle single{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_receiver(single));while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("inline 1'000 time single"
 
meter measure ([&]{counter.store(1'000);ie|op::submit(mi::make_receiver(single));while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("inline 1'000 many", [](nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_many{};using IE=decltype(ie);countdownmany many{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_receiver(many));while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("inline 1'000 flow_single shared"
 
meter measure ([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowsingle));while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("inline 1'000 flow_single entangle", [](nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_single_entangled{};using IE=decltype(ie);countdownflowsingle flowsingle{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowsingle));while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("inline 1'000 flow_single ignore cancellation"
 
 NONIUS_BENCHMARK ("inline 1'000 flow_many", [](nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_many{};using IE=decltype(ie);countdownflowmany flowmany{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowmany));while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("inline 1 flow_many with 1'000 values pull 1"
 
meter measure ([&]{counter.store(1'000);ie|op::for_each(mi::make_receiver());while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("inline 1 flow_many with 1'000 values pull 1'000", [](nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_many{counter};using IE=decltype(ie);meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(mi::ignoreNF{}, mi::abortEF{}, mi::ignoreDF{}, [](auto up){mi::set_value(up, 1'000);}));while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("inline 1'000 flow_many ignore cancellation"
 
meter measure ([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowmany));while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("trampoline 1'000 single get (blocking_submit)", [](nonius::chronometer meter){int counter{0};auto tr=mi::trampoline();using TR=decltype(tr);meter.measure([&]{counter=1'000;while(--counter >=0){auto fortyTwo=tr|op::transform([](auto){return 42;})|op::get< int >;}return counter;});}) NONIUS_BENCHMARK("trampoline static derecursion 1'000"
 
meter measure ([&]{counter.store(1'000);tr|op::submit(single);while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("trampoline virtual derecursion 1'000", [](nonius::chronometer meter){std::atomic< int > counter{0};auto tr=mi::trampoline();using TR=decltype(tr);auto single=countdownsingle{counter};std::function< void(mi::any_executor_ref<>)> recurse{[&](auto exec){::folly::pushmi::set_value(single, exec);}};meter.measure([&]{counter.store(1'000);tr|op::submit([&](auto exec){recurse(exec);});while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("trampoline flow_many_sender 1'000"
 
std::vector< int > values (1'000)
 
meter measure ([&]{counter.store(1'000);f|op::for_each(mi::make_receiver());while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("pool{1} submit 1'000", [](nonius::chronometer meter){mi::pool pl{std::max(1u, std::thread::hardware_concurrency())};auto pe=pl.executor();using PE=decltype(pe);std::atomic< int > counter{0};countdownsingle single{counter};meter.measure([&]{counter.store(1'000);pe|op::submit(single);while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK("pool
 
meter measure ([&]{counter.store(1'000);pe|op::submit(single);while(counter.load() > 0);return counter.load();})
 
 NONIUS_BENCHMARK ("new thread submit 1'000", [](nonius::chronometer meter){auto nt=mi::new_thread();using NT=decltype(nt);std::atomic< int > counter{0};countdownsingle single{counter};meter.measure([&]{counter.store(1'000);nt|op::submit(single);while(counter.load() > 0);return counter.load();});}) NONIUS_BENCHMARK(" new thread blocking_submit 1'000"
 
meter measure ([&]{counter.store(1'000);nt|op::blocking_submit(single);return counter.load();})
 

Variables

nonius::chronometer meter
 
auto ie = inline_time_executor{}
 
countdownsingle single {counter}
 
countdownflowsingle flowsingle {counter}
 
countdownflowmany flowmany {counter}
 
auto tr = mi::trampoline()
 
auto f
 
 submit
 
auto pe = pl.executor()
 
std::atomic< int > counter {0}
 

Macro Definition Documentation

#define concept   Concept

Definition at line 313 of file PushmiBenchmarks.cpp.

Typedef Documentation

using countdownflowmany = countdown<decltype(mi::make_flow_receiver)>

Definition at line 79 of file PushmiBenchmarks.cpp.

using countdownflowsingle = countdown<decltype(mi::make_flow_receiver)>

Definition at line 77 of file PushmiBenchmarks.cpp.

using countdownmany = countdown<decltype(mi::make_receiver)>

Definition at line 78 of file PushmiBenchmarks.cpp.

using countdownsingle = countdown<decltype(mi::make_receiver)>

Definition at line 76 of file PushmiBenchmarks.cpp.

using IE = decltype(ie)

Definition at line 354 of file PushmiBenchmarks.cpp.

using NT = decltype(nt)

Definition at line 569 of file PushmiBenchmarks.cpp.

using PE = decltype(pe)

Definition at line 543 of file PushmiBenchmarks.cpp.

using TR = decltype(tr)

Definition at line 484 of file PushmiBenchmarks.cpp.

Function Documentation

meter measure ( [&] {counter=1'000;while(--counter >=0){auto fortyTwo=mi::make_single_sender([](auto out){mi::set_value(out, 42);mi::set_done(out);})|op::get< int >;}return counter;}  )

Referenced by TestDeltas().

meter measure ( [&] {counter.store(1'000);ie|op::submit(mi::make_receiver(single));while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowsingle));while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);ie|op::for_each(mi::make_receiver());while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowmany));while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);tr|op::submit(single);while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);f|op::for_each(mi::make_receiver());while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);pe|op::submit(single);while(counter.load() > 0);return counter.load();}  )
meter measure ( [&] {counter.store(1'000);nt|op::blocking_submit(single);return counter.load();}  )
NONIUS_BENCHMARK ( "ready 1'000 single get (submit)"  ,
[] (nonius::chronometer meter){int counter{0};meter.measure([&]{counter=1'000;while(--counter >=0){auto fortyTwo=op::just(42)|op::get< int >;}return counter;});}   
)
NONIUS_BENCHMARK ( "inline 1'000 single ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor{};using IE=decltype(ie);countdownsingle single{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_receiver(single));while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "inline 1'000 many"  ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_many{};using IE=decltype(ie);countdownmany many{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_receiver(many));while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "inline 1'000 flow_single entangle"  ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_single_entangled{};using IE=decltype(ie);countdownflowsingle flowsingle{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowsingle));while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "inline 1'000 flow_many"  ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_many{};using IE=decltype(ie);countdownflowmany flowmany{counter};meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(flowmany));while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "inline 1 flow_many with 1'000 values pull 1'000"  ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto ie=inline_executor_flow_many{counter};using IE=decltype(ie);meter.measure([&]{counter.store(1'000);ie|op::submit(mi::make_flow_receiver(mi::ignoreNF{}, mi::abortEF{}, mi::ignoreDF{}, [](auto up){mi::set_value(up, 1'000);}));while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "trampoline 1'000 single get (blocking_submit)"  ,
[] (nonius::chronometer meter){int counter{0};auto tr=mi::trampoline();using TR=decltype(tr);meter.measure([&]{counter=1'000;while(--counter >=0){auto fortyTwo=tr|op::transform([](auto){return 42;})|op::get< int >;}return counter;});}   
)
NONIUS_BENCHMARK ( "trampoline virtual derecursion 1'000"  ,
[] (nonius::chronometer meter){std::atomic< int > counter{0};auto tr=mi::trampoline();using TR=decltype(tr);auto single=countdownsingle{counter};std::function< void(mi::any_executor_ref<>)> recurse{[&](auto exec){::folly::pushmi::set_value(single, exec);}};meter.measure([&]{counter.store(1'000);tr|op::submit([&](auto exec){recurse(exec);});while(counter.load() > 0);return counter.load();});}   
)
NONIUS_BENCHMARK ( "pool{1} submit 1'000"  ,
[] (nonius::chronometer meter){mi::pool pl{std::max(1u, std::thread::hardware_concurrency())};auto pe=pl.executor();using PE=decltype(pe);std::atomic< int > counter{0};countdownsingle single{counter};meter.measure([&]{counter.store(1'000);pe|op::submit(single);while(counter.load() > 0);return counter.load();});}   
)

Definition at line 526 of file PushmiBenchmarks.cpp.

526  {1} submit 1'000", [](nonius::chronometer meter){
527  mi::pool pl{std::max(1u,std::thread::hardware_concurrency())};
528  auto pe = pl.executor();
529  using PE = decltype(pe);
530  std::atomic<int> counter{0};
531  countdownsingle single{counter};
532  meter.measure([&]{
533  counter.store(1'000);
534  pe | op::submit(single);
535  while(counter.load() > 0);
536  return counter.load();
537  });
538 })
539 
540 NONIUS_BENCHMARK("pool{hardware_concurrency} submit 1'000", [](nonius::chronometer meter){
nonius::chronometer meter
countdownsingle single
auto pe
std::atomic< int > counter
NONIUS_BENCHMARK("ready 1'000 single get (submit)", [](nonius::chronometer meter){int counter{0};meter.measure([&]{counter=1'000;while(--counter >=0){auto fortyTwo=op::just(42)|op::get< int >;}return counter;});}) NONIUS_BENCHMARK("ready 1'000 single get (blocking_submit)"
NONIUS_BENCHMARK ( "new thread submit 1'000"  ,
[] (nonius::chronometer meter){auto nt=mi::new_thread();using NT=decltype(nt);std::atomic< int > counter{0};countdownsingle single{counter};meter.measure([&]{counter.store(1'000);nt|op::submit(single);while(counter.load() > 0);return counter.load();});}   
)
new

Variable Documentation

auto f
Initial value:
= op::flow_from(values, tr) | op::tap([&](int){
})
PUSHMI_INLINE_VAR constexpr detail::tap_fn tap
Definition: tap.h:126
auto tr
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::operators::flow_from_fn flow_from
std::atomic< int > counter
std::vector< int > values(1'000)

Definition at line 515 of file PushmiBenchmarks.cpp.

Referenced by folly::FiberIOExecutor::add(), folly::InlineExecutor::add(), GenericFilterTest< Owned >::addFilterToChain(), folly::fibers::FiberManager::addTaskFuture(), folly::fibers::FiberManager::addTaskRemoteFuture(), PriorityExecutor::addWithPriority(), folly::ThreadWheelTimekeeper::after(), wangle::TimekeeperTester::after(), wangle::TimekeeperTester::at(), folly::AtomicUnorderedInsertMap< Key, Value, Hash, KeyEqual, SkipKeyValueDeletion, Atom, IndexType, Allocator >::AtomicUnorderedInsertMap(), BENCHMARK(), folly::BENCHMARK(), BENCHMARK_RELATIVE(), folly::call_once(), folly::basic_once_flag< SharedMutex >::call_once(), folly::basic_once_flag< SharedMutex >::call_once_slow(), callFunction(), ConcurrentFlowManySender::cancellation_test(), ConcurrentFlowSingleSender::cancellation_test(), folly::futures::detail::chainExecutor(), testing::internal::CallableTraits< ResType(*)(ArgType)>::CheckIsValid(), folly::collect(), folly::collectAllSemiFuture(), folly::fibers::collectN(), proxygen::compress::CompressionSimulator::CompressionSimulator(), folly::ThreadedExecutor::controlLaunchEnqueuedTasks(), folly::detail::StaticSingletonManager::Creator< F >::create(), DataTicker< f >::DataTicker(), proxygen::HPACKDecodeBuffer::decodeInteger(), folly::SemiFuture< T >::deferValue(), destroy(), destroy< IOThreadPoolExecutor >(), deterministicAtomicWaitUntilTests(), folly::BenchmarkSuspender::dismissing(), folly::compression::instructions::dispatch(), folly::compression::dispatchInstructions(), testing::internal::DownCast_(), duration_to_ts(), folly::pushmi::entangle(), inline_executor::execute(), fGen(), for_each_argument(), folly::fibers::forEach(), ForEach< ValueType >::ForEach(), wangle::Observable< T >::forEachObserver(), wangle::BroadcastHandler< std::string, std::string >::forEachSubscriber(), wangle::ServerWorkerPool::forEachWorker(), wangle::ServerBootstrap< DefaultPipeline >::forEachWorker(), folly::Future< folly::folly::Unit >::Future(), folly::python::test::future_getValueX5(), folly::hazptr_holder< Atom >::get_protected(), folly::symbolizer::SignalSafeElfCache::getFile(), folly::getGFlags(), folly::getLinuxVersion(), folly::ThreadPoolExecutor::getThreadFactory(), invoke(), folly::invoke(), testing::internal::CallableTraits< Callable >::Invoke(), testing::internal::CallableTraits< ResType(*)(ArgType)>::Invoke(), folly::detail::apply_tuple::adl::ApplyInvoke::invoke_(), folly::invoke_noreturn_cold(), folly::for_each_detail::invoke_returning_loop_control(), testing::internal::invoke_argument::InvokeArgumentAdl(), folly::detail::invokeForKeyValue(), join(), keepAliveTest(), liveClockWaitUntilTests(), folly::sorted_vector_map< Key, Value, Compare, Allocator, GrowthPolicy, Container >::lower_bound(), main(), proxygen::HTTPServerAcceptor::make(), ImmediateFlowManySender::make_consumer(), ImmediateFlowSingleSender::make_consumer(), folly::futures::detail::makeCoreCallbackState(), folly::makeGuard(), folly::makePromiseContract(), folly::makeTryWith(), testing::gmock_generated_function_mockers_test::MockFoo::MockFoo(), testing::gmock_generated_function_mockers_test::MockOverloadedOnConstness::MockOverloadedOnConstness(), folly::AsyncUDPServerSocket::onDataAvailable(), MockCodecDownstreamTest::onIngressImpl(), folly::pushmi::invoke_fn::operator()(), folly::pushmi::pipe_fn::operator()(), folly::pushmi::operators::defer_fn::operator()(), folly::ApplyInvoke::operator()(), BonkMultiplexClientDispatcher::operator()(), wangle::SerialClientDispatcher< wangle::Pipeline, folly::Req, Resp >::operator()(), testing::gmock_generated_actions_test::SumOf5Functor::operator()(), wangle::PipelinedClientDispatcher< Pipeline, Req, Resp >::operator()(), testing::gmock_generated_actions_test::SumOf6Functor::operator()(), testing::gmock_more_actions_test::SumOf5Functor::operator()(), testing::gmock_more_actions_test::SumOf6Functor::operator()(), folly::pushmi::detail::transform_fn::operator()(), ForEach< ValueType >::operator()(), folly::static_function_deleter< T, f >::operator()(), folly::detail::float_hasher< float >::operator()(), testing::internal::TransformTupleValuesHelper< Tuple, Func, OutIter >::IterateOverTuple< Tup, kRemainingSize >::operator()(), testing::internal::TransformTupleValuesHelper< Tuple, Func, OutIter >::IterateOverTuple< Tup, 0 >::operator()(), PrettyType< Data< f, pad > >::operator()(), DataTicker< f >::operator=(), folly::partial(), folly::test::CaptureFD::readIncremental(), folly::reduce(), folly::fibers::TimeoutController::registerTimeout(), removeThreadTest(), resizeThreadWhileExecutingTest(), resizeUnderLoad(), folly::futures::detail::retrying(), folly::futures::detail::retryingImpl(), folly::TimedDrivableExecutor::run(), run4Threads(), run_basic_test(), run_basic_tests(), run_multi_poster_multi_waiter_test(), run_wake_blocked_test(), folly::VirtualEventBase::runInEventBaseThread(), folly::fibers::FiberManager::runInMainContext(), folly::ManualExecutor::scheduleAt(), proxygen::compress::CompressionSimulator::scheduleEvent(), folly::HHWheelTimer::scheduleTimeoutFn(), wangle::ServerWorkerPool::ServerWorkerPool(), proxygen::HTTPServerAcceptor::setCompletionCallback(), folly::futures::detail::FutureBase< T >::setExecutor(), folly::pushmi::shared_entangle(), folly::detail::spin_pause_until(), folly::detail::spin_yield_until(), proxygen::ScopedHTTPServer::start(), folly::FunctionScheduler::start(), stop(), stop< IOThreadPoolExecutor >(), testing::gmock_generated_actions_test::SumOf6(), testing::gmock_more_actions_test::SumOf6(), testing::gmock_more_actions_test::Foo::SumOf6(), folly::TEST(), wangle::TEST(), testing::gtest_printers_test::TEST(), TEST(), testing::gmock_generated_actions_test::TEST(), testing::gmock_generated_function_mockers_test::TEST(), TEST_F(), folly::test::TEST_F(), testing::gmock_matchers_test::TEST_F(), testing::TEST_F(), GenericFilterTest< Owned >::testFilters(), testing::gmock_matchers_test::FloatingPointNearTest< RawType >::TestNearMatches(), testTemporaryDirectory(), p1054::then_execute(), p1055::then_execute(), folly::futures::detail::FutureBase< T >::thenImplementation(), folly::Future< T >::thenTry(), folly::Future< T >::thenValue(), throwAndCatch(), folly::detail::try_and_catch_(), folly::hazptr_holder< Atom >::try_protect(), p1054::twoway_execute(), p1055::twoway_execute(), folly::uncurry(), folly::unorderedReduce(), folly::sorted_vector_map< Key, Value, Compare, Allocator, GrowthPolicy, Container >::upper_bound(), foo::StreamableTemplateInFoo< T >::value(), folly::Future< T >::via(), folly::via(), virtualExecutorTest(), folly::fibers::Baton::waitFiber(), WeakRefTest(), folly::with_unique_lock(), folly::ThreadPoolExecutor::withAll(), folly::futures::detail::FutureBase< T >::withinImplementation(), folly::fileutil_detail::wrapFull(), folly::fileutil_detail::wrapNoInt(), wrapPositional(), folly::fileutil_detail::wrapvFull(), and testing::gmock_generated_function_mockers_test::FooInterface::~FooInterface().

Definition at line 459 of file PushmiBenchmarks.cpp.

Definition at line 381 of file PushmiBenchmarks.cpp.

auto ie = inline_time_executor{}

Definition at line 353 of file PushmiBenchmarks.cpp.

Referenced by TEST().

nonius::chronometer meter
Initial value:
{
int counter{0}
std::atomic< int > counter

Definition at line 327 of file PushmiBenchmarks.cpp.

auto pe = pl.executor()

Definition at line 542 of file PushmiBenchmarks.cpp.

submit

Definition at line 540 of file PushmiBenchmarks.cpp.

Referenced by folly::pushmi::any_constrained_executor_ref< E, CV >::any_constrained_executor_ref(), folly::pushmi::any_constrained_single_sender< E, TP, VN... >::any_constrained_single_sender(), folly::pushmi::any_executor_ref< E >::any_executor_ref(), folly::pushmi::any_flow_many_sender< PE, PV, E, VN >::any_flow_many_sender(), folly::pushmi::any_flow_single_sender< PE, E, VN >::any_flow_single_sender(), folly::pushmi::any_many_sender< E, VN >::any_many_sender(), folly::pushmi::any_single_sender< E, VN >::any_single_sender(), folly::pushmi::any_time_executor_ref< E, TP >::any_time_executor_ref(), ConcurrentFlowManySender::cancellation_test(), ConcurrentFlowSingleSender::cancellation_test(), constrained_single_sender_test(), folly::pushmi::operators::flow_from_up< Producer >::done(), folly::pushmi::operators::flow_from_up< Producer >::error(), get_setting(), lisp(), main(), naive_executor_bulk_target(), countdownsingle::operator()(), folly::pushmi::detail::submit_fn::fn< AN >::operator()(), folly::pushmi::detail::for_each_fn::fn< AN >::operator()(), folly::pushmi::detail::submit_at_fn::fn< TP, AN >::operator()(), folly::pushmi::detail::submit_after_fn::fn< D, AN >::operator()(), folly::pushmi::operators::flow_from_fn::out_impl< I, S, Exec >::operator()(), folly::pushmi::detail::blocking_submit_fn::submit_impl< In >::operator()(), pipe(), folly::AsyncIO::pollFd(), folly::AsyncIOQueue::queued(), single_sender_test(), folly::pushmi::new_thread_executor::submit(), folly::pushmi::detail::delegator< E >::submit(), folly::pushmi::detail::nester< E >::submit(), folly::pushmi::detail::trampoline< E >::submit(), folly::pushmi::detail::blocking_submit_fn::nested_executor_impl::submit(), folly::pushmi::strand_executor< E, Executor >::submit(), sugar(), TEST(), TEST_F(), time_single_sender_test(), countdown< R >::value(), and folly::pushmi::operators::flow_from_up< Producer >::value().

auto tr = mi::trampoline()

Definition at line 483 of file PushmiBenchmarks.cpp.

Referenced by folly::pushmi::new_thread_executor::submit(), and TEST().