class LockFreeTaskRunner
Defined at line 58 of file ../../third_party/perfetto/include/perfetto/ext/base/lock_free_task_runner.h
This class implements a lock-less multi-producer single-consumer task runner.
This is achieved by using a linked list of "slabs". Each slab is a fixed-size
array of tasks.
See /docs/design-docs/lock-free-task-runner.md for more details
Public Methods
void LockFreeTaskRunner ()
void ~LockFreeTaskRunner ()
void Run ()
void Quit ()
bool IsIdleForTesting ()
Checks whether there are any pending immediate tasks to run. Note that
delayed tasks don't count even if they are due to run.
void PostTask (std::function<void ()> )
TaskRunner implementation:
void PostDelayedTask (std::function<void ()> , uint32_t delay_ms)
void AddFileDescriptorWatch (PlatformHandle , std::function<void ()> )
void RemoveFileDescriptorWatch (PlatformHandle )
bool RunsTasksOnCurrentThread ()
void AdvanceTimeForTesting (uint32_t ms)
Pretends (for the purposes of running delayed tasks) that time advanced by
`ms`.
size_t slabs_allocated ()
Stats for testing.
Defined at line 82 of file ../../third_party/perfetto/include/perfetto/ext/base/lock_free_task_runner.h
size_t slabs_freed ()
Defined at line 85 of file ../../third_party/perfetto/include/perfetto/ext/base/lock_free_task_runner.h
Friends
class ScopedRefcount