codex
|
#include <cassert>
#include <condition_variable>
#include <coroutine>
#include <iostream>
#include <new>
#include <queue>
#include <thread>
#include <version>
Classes | |
struct | base_promise |
class | thread_pool |
struct | thread_pool::thread_data |
class | simple_task |
struct | simple_task::promise_type |
struct | task |
struct | task::promise_type |
class | continuation |
class | continuation::promise_type |
Macros | |
#define | FWD(x) std::forward<decltype(x)>(x) |
Functions | |
void | time (auto &&f) |
simple_task | test0_f () |
void | test0 () |
task | test1_f (thread_pool *p) |
void | test1 () |
continuation | test2_f (thread_pool *p, auto f) |
continuation | test2_sc () |
task | test2_s () |
continuation | test2_scc (continuation *c, auto &&f) |
continuation | test2_c (continuation *c, auto f) |
task | schedule (thread_pool *p, auto &&f) |
void | test2 () |
int | main () |
Variables | |
static constexpr std::size_t | hardware_destructive_interference_size = 64 |
static constexpr std::size_t | N = 1024 * 1024 |
static std::atomic< std::size_t > | test1_n = {} |
static std::atomic< std::size_t > | test2_n = {} |
int main | ( | void | ) |
task schedule | ( | thread_pool * | p, |
auto && | f ) |
void test0 | ( | ) |
simple_task test0_f | ( | ) |
void test1 | ( | ) |
task test1_f | ( | thread_pool * | p | ) |
void test2 | ( | ) |
continuation test2_c | ( | continuation * | c, |
auto | f ) |
continuation test2_f | ( | thread_pool * | p, |
auto | f ) |
task test2_s | ( | ) |
continuation test2_sc | ( | ) |
continuation test2_scc | ( | continuation * | c, |
auto && | f ) |
void time | ( | auto && | f | ) |
|
staticconstexpr |
|
staticconstexpr |
|
static |
|
static |