join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
io_policy.hpp File Reference
#include <liburing.h>
#include <cstdint>
Include dependency graph for io_policy.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  join::IoDefaultPolicy
 
struct  join::IoHybridPolicy
 
struct  join::IoSqpollPolicy
 

Namespaces

namespace  join
 

Variables

template<typename T >
constexpr bool join::has_sqpoll_v = (T::flags & IORING_SETUP_SQPOLL) != 0
 
template<typename T >
constexpr bool join::has_cq_entries_v = requires { T::cqEntries; }
 
template<typename T >
constexpr bool join::has_sq_thread_idle_v = requires { T::sqThreadIdle; }
 
template<typename T >
constexpr bool join::has_sq_thread_cpu_v = requires { T::sqThreadCpu; }
 
template<typename T >
constexpr bool join::has_spin_v = requires { T::spinNs; }
 
template<typename T >
constexpr bool join::is_default_v = !has_spin_v<T> && !has_sqpoll_v<T>
 
template<typename T >
constexpr uint64_t join::spin_ns_v = 10'000
 
template<typename T >
constexpr uint64_t join::spin_ns_v< T > = T::spinNs
 
template<typename T >
constexpr bool join::has_yield_ns_v = requires { T::yieldNs; }
 
template<typename T >
constexpr uint64_t join::yield_ns_v = 100'000
 
template<typename T >
constexpr uint64_t join::yield_ns_v< T > = T::yieldNs
 
template<typename T >
constexpr bool join::has_sleep_ns_v = requires { T::sleepNs; }
 
template<typename T >
constexpr uint64_t join::sleep_ns_v = 0
 
template<typename T >
constexpr uint64_t join::sleep_ns_v< T > = T::sleepNs
 
template<typename T >
constexpr bool join::has_tick_ns_v = requires { T::tickNs; }
 
template<typename T >
constexpr uint64_t join::tick_ns_v = 1'000
 
template<typename T >
constexpr uint64_t join::tick_ns_v< T > = T::tickNs