15 using Func = void (*)(
void *)
noexcept;
16 Invoker(Func func) : func_(func) {}
18 void operator()() noexcept { func_(
this); }
24template <
typename T,
typename Invoker = Invoker>
25class InvokerAdapter :
public Invoker {
27 InvokerAdapter() : Invoker(&InvokerAdapter::invoke_) {}
30 static void invoke_(
void *self)
noexcept {
31 static_cast<T *
>(self)->invoke();
35class WorkInvoker :
public Invoker {
37 using Invoker::Invoker;
38 SingleLinkEntry work_queue_entry_;
Intrusive single-linked and double-linked list implementations.
The main namespace for the Condy library.