Iros
 
Loading...
Searching...
No Matches
task_namespace.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/sync/prelude.h"
6#include "iris/core/error.h"
7#include "iris/core/task.h"
8
9namespace iris {
11public:
13
15 void unregister_task(Task&);
16
17 auto find_task(TaskId id) const -> Expected<di::Arc<Task>>;
18
19private:
20 TaskId m_next_id { 0 };
22};
23
25 : public di::IntrusiveRefCount<TaskNamespace>
26 , public di::Synchronized<LockedTaskNamespace, InterruptibleSpinlock> {};
27}
Definition tree_map.h:80
Definition synchronized.h:17
Definition task_namespace.h:10
auto find_task(TaskId id) const -> Expected< di::Arc< Task > >
Definition task_namespace.cpp:24
void unregister_task(Task &)
Definition task_namespace.cpp:18
auto allocate_task_id() -> Expected< TaskId >
Definition task_namespace.cpp:6
auto register_task(Task &) -> Expected< void >
Definition task_namespace.cpp:12
Definition task_namespace.h:26
Definition task.h:30
Definition cxx_init.cpp:12
di::StrongInt< TaskIdTag > TaskId
Definition task.h:19
di::vocab::Expected< T, di::platform::GenericCode > Expected
Definition error.h:324
Definition arc.h:24