16#include "pw_async2/context.h"
17#include "pw_async2/lock.h"
18#include "pw_async2/poll.h"
19#include "pw_containers/intrusive_forward_list.h"
20#include "pw_containers/intrusive_list.h"
21#include "pw_log/tokenized_args.h"
22#include "pw_sync/lock_annotations.h"
29#define PW_ASYNC_TASK_NAME(name) PW_LOG_TOKEN_EXPR("pw_async2", name)
31class NativeDispatcherBase;
83 Task& operator=(
const Task&) =
delete;
182 void RemoveAllWakersLocked()
187 void AddWakerLocked(
Waker&)
195 void RemoveWakerLocked(
Waker&)
Definition: intrusive_forward_list.h:91
A single-threaded cooperatively scheduled runtime for async tasks.
Definition: dispatcher.h:48
Definition: dispatcher_base.h:49
void Destroy()
Definition: task.h:144
virtual Poll DoPend(Context &)=0
constexpr Task(log::Token name)
Definition: task.h:79
Poll Pend(Context &cx)
Definition: task.h:110
bool IsRegistered() const
virtual void DoDestroy()
Definition: task.h:179
Definition: intrusive_list.h:88
pw::sync::InterruptSpinLock & dispatcher_lock()
Definition: lock.h:33
#define PW_GUARDED_BY(x)
Definition: lock_annotations.h:60
#define PW_EXCLUSIVE_LOCKS_REQUIRED(...)
Definition: lock_annotations.h:146
constexpr Token kDefaultToken
Default value of a log token. This token should not be logged.
Definition: tokenized_args.h:102
const char * Token
Definition: tokenized_args.h:99